2013-09-08 4 views
6

я модель определяется следующим образом:толкая элемент в массиве 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)

Я Не знаете, что мне здесь не хватает?

Заранее благодарим за помощь!

С уважением.

ответ

18

Я только что нашел, как сделать толчок на массив mongoid.

В документации API они дают пример (Mongoid 3.x):

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

Я использую Mongoid 4.0.0, и они изменили определение метода, теперь мы должны использовать новый синтаксис, Я должен был написать:

foo.push(aliases: "test") 

Проблема решена так.

+0

о, хорошо поймать! В этом есть смысл –

Смежные вопросы