【发布时间】:2014-07-21 16:27:01
【问题描述】:
这段代码中无法更新文档中的数组的错误是什么?
型号
class Foo
include Mongoid::Document
include Mongoid::Timestamps::Created
field :myarray, type: Array
end
控制器
def add_item
@foo = Foo.find_by(uuid: params[:uuid])
unless @foo.nil?
unless @foo.has_attribute? :myarray
@foo[:myarray] = Array.new
end
@foo[:myarray] << params[:item]
@foo.save
end
end
我正在使用带有 MongoId 4 的 Rails 4,如果我在 @foo.save 之前使用 p @foo,我可以看到 @foo 正确更改,但由于任何原因更新不会持续。
【问题讨论】:
-
如果您改为
@foo[:myarray] += [ params[:item] ]会怎样? -
这行得通!但我不明白为什么有必要再次实例化数组以跟踪 mongoid 的变化。
标签: arrays ruby-on-rails-4 mongoid mongoid4