在mongoid数组中推送项目

时间:2013-09-08 11:30:13

标签: ruby-on-rails ruby mongoid

我的模型定义如下:

class Foo
  include ::Mongoid::Document

  field :name, type: String
  field :followed_bars, type: Array
  field :favorite_bars, type: Array
end

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

foo = Foo.new(name: "Test")
foo.save

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

foo = Foo.first
foo.push(:followed_bars, "hello")

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

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

提前感谢您的帮助!

问候。

1 个答案:

答案 0 :(得分:21)

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

在API文档中,他们举了一个例子(mongoid 3.x):

Model#push    person.push(:aliases, "007")

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

foo.push(aliases: "test")

问题解决了。