2013-09-08 14 views
6

Ho un modello definito in questo modo:voce spingendo in ordine di mongoid

class Foo 
    include ::Mongoid::Document 

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

ho creato un oggetto Foo come questo:

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

Nel mio DB quando digito db.foo.find () Posso vedere l'oggetto che ho appena creato. Poi, nella mia applicazione che sto cercando di fare questo:

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

E ogni volta che ricevo un errore: ArgumentError: numero errato di argomenti (2 per 1)

I' Non sono sicuro di capire cosa mi manca qui?

Grazie in anticipo per l'aiuto!

Saluti.

risposta

18

Ho appena trovato come fare una spinta su un array mongoid.

nella documentazione delle API che danno un esempio (3.x mongoid):

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

sto usando mongoid 4.0.0 e hanno cambiato la definizione di un metodo, ora dobbiamo utilizzare la nuova sintassi in modo Ho dovuto scrivere:

foo.push(aliases: "test") 

Problema risolto così.

+0

oh, buona cattura! Ciò ha senso –