HashWithIndifferentAccess

HashWithIndifferentAccess

我有一个名为“my_models”的表,其中有一个名为“settings”的“json”列。

我也有以下模型:

class MyModels < ActiveRecord::Base
end

“MyModels”实例的“设置”属性是哈希。

是否可以配置“MyModels”以将类型“settings”的原始列值类型转换为HashWithIndifferentAccess而不是Hash?

最佳答案

由于HashWithIndifferentAccess不能同时响应loaddump方法,因此单独进行序列化无法在此处工作,但是您可以执行以下操作:

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/

10-09 14:34