我有一个模型,实体。
class Entity
include Mongoid::Document
field :x
field :y
field :z, type => Hash, :default => {} # new field
end
我添加了一个新字段,一个哈希。当我尝试使用它时,我收到错误。我的代码是:
e = Entity.first
if e.z["a"] # if there is a key of this in it?
e.z["a"] = e.z["a"] + 1
else
e.z["a"] = 1
end
但是,使用未定义方法的此错误会获取哈希值。如果我尝试为它创建初始化程序,要在现有文档中设置值,它会出错并返回相同的错误。我究竟做错了什么?
初始化程序看起来像:
e = Entity.first
e.write_attribute(:z, {})
由于
答案 0 :(得分:1)
对它进行排序。
似乎答案是将Mongoid 1.9.5中的哈希值设置为:
field :hash_field, :type => Hash, :default => Hash.new
它可以访问并初始化它。不太明白为什么,但很高兴得到答案!