Hallo Leute Ich führe eine Sinatra-Anwendung mit mongomapper. Ich habe Modelle Film (Dokument) und Abdeckung (EmbeddedDocument) .Ich einbetten deckt in Filme genanntWie lösche ich ein eingebettetes Dokument in mongomapper?
@movie.covers << @cover
@movie.save
Dies funktioniert gut mit. wenn @ @ movies.covers getroffen habe ich das Array von eingebetteten Dokumenten. Aber ich kann das eingebettete Dokument nicht zerstören. Ich habe so etwas versucht
@movie.covers.each do |c|
c.destroy
end
NoMethodError: undefined method `destroy' for #<Cover:0xb7b20734>
from (irb):5
from /usr/lib/ruby/gems/1.8/gems/mongo_mapper-0.6.8/lib/mongo_mapper/associations/proxy.rb:85:in `call'
from /usr/lib/ruby/gems/1.8/gems/mongo_mapper-0.6.8/lib/mongo_mapper/associations/proxy.rb:85:in `method_missing'
from /usr/lib/ruby/gems/1.8/gems/mongo_mapper-0.6.8/lib/mongo_mapper/associations/proxy.rb:85:in `each'
from /usr/lib/ruby/gems/1.8/gems/mongo_mapper-0.6.8/lib/mongo_mapper/associations/proxy.rb:85:in `send'
from /usr/lib/ruby/gems/1.8/gems/mongo_mapper-0.6.8/lib/mongo_mapper/associations/proxy.rb:85:in `method_missing'
from (irb):4
from :0
Kann jemand temme, wie man es zerstört? Es wäre großartig, wenn mir jemand aufklärt, wie man das eingebettete Dokument aktualisiert.
Dank pzol. Es hat mir geholfen. Es wäre sehr hilfreich, wenn Sie teme, wie ich Abdeckungen aktualisieren kann. – Deepak
Sie laden den Film. Die Abdeckungen sind ein Array, also müssen Sie eines auswählen, seine Felder ändern und dann speichern: Zum Beispiel @movie = Movie.find (: erste) @ movie.covers [0] .name = "aktualisierter Name" @ movie.save –