我在一个由两列组成的数据库表上工作-一列用于我想存储的所有值转换为string
s。至于另一个,我想存储它们的原始数据类型。
我知道我可以将它们的类型存储在字符串中(例如:"string
"、"fixnum
"等)。但是,当我稍后需要检索和处理该数据时,我将不得不对类型进行switch
处理(我希望避免这种情况,并能够立即将值转换回其原始类型)。是否有任何方法来存储我们从.class
调用到数据库列的内容?如果是,列应该是什么类型的?
谢谢。
可以使用constantise方法。它接受一个字符串并尝试将其转换为常量名称:
"String".constantize #becomes String
现在,字符串必须正确地大写才能正常工作。如果有错误,它会抛出一个错误。使用safe_constantify使它在失败时返回nil
。