Salut les gars J'utilise une application sinatra avec mongomapper. J'ai modèles appelés films (document) et le couvercle (EmbeddedDocument) .Je embed couvre dans les films à l'aideComment supprimer un document incorporé dans mongomapper?
@movie.covers << @cover
@movie.save
Cela fonctionne très bien. lorsque hit @ movies.covers J'ai obtenu le tableau de documents incorporés. Mais je ne suis pas capable de détruire le document incorporé. J'ai essayé quelque chose comme ça
@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
Quelqu'un peut-il essayer de le détruire? Ce serait génial si quelqu'un m'éclairait comment mettre à jour le document incorporé.
Merci pzol. Ça m'a aidé. Il serait très utile si vous pensez comment je peux mettre à jour les couvertures. – Deepak
Vous chargez le film. Les couvertures sont un tableau, vous devez donc en choisir une, modifier ses champs, puis enregistrer: Par exemple @movie = Movie.find (: first) @ movie.covers [0] .name = "nom mis à jour" @ movie.save –