在mongoid数组中推送项目

Hit*_*ito 7 ruby ruby-on-rails mongoid

我有一个这样定义的模型:

class Foo
  include ::Mongoid::Document

  field :name, type: String
  field :followed_bars, type: Array
  field :favorite_bars, type: Array
end
Run Code Online (Sandbox Code Playgroud)

我创建了一个像这样的Foo对象:

foo = Foo.new(name: "Test")
foo.save
Run Code Online (Sandbox Code Playgroud)

在我输入db.foo.find()的数据库中,我可以看到刚创建的对象.然后,在我的应用程序中,我正在尝试这样做:

foo = Foo.first
foo.push(:followed_bars, "hello")
Run Code Online (Sandbox Code Playgroud)

每次我收到错误:ArgumentError:错误的参数数量(2为1)

我不确定我在这里错过了什么?

在此先感谢您的帮助!

问候.

Hit*_*ito 21

我刚刚找到了如何对mongoid数组进行推送.

在API文档中,他们给出了一个示例(mongoid 3.x):

Model#push    person.push(:aliases, "007")
Run Code Online (Sandbox Code Playgroud)

我正在使用mongoid 4.0.0并且他们改变了方法定义,现在我们必须使用新语法,所以我必须写:

foo.push(aliases: "test")
Run Code Online (Sandbox Code Playgroud)

问题解决了.