我有一个名为“my_models”的表,其中有一个名为“settings”的“json”列。
我也有以下模型:
class MyModels < ActiveRecord::Base
end
“MyModels”实例的“设置”属性是哈希。
是否可以配置“MyModels”以将类型“settings”的原始列值类型转换为HashWithIndifferentAccess而不是Hash?
最佳答案
由于HashWithIndifferentAccess
不能同时响应load
和dump
方法,因此单独进行序列化无法在此处工作,但是您可以执行以下操作:
class THEModel < ActiveRecord::Base
def my_hash_attribute
read_attribute(:my_hash_attribute).with_indifferent_access
end
end
另请参阅Custom serialization for fields in Rails
关于ruby - Postgresql JSON列为HashWithIndifferentAccess,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24389018/