2012-10-10 3 views
0

Dites que j'ai un document post avec beaucoup de réponses. Lorsque je supprime ces réponses en mémoire, je veux être en mesure de voir que ces réponses ont été supprimées, bien que non repérées. Permettez-moi de vous montrer:documents liés non documentés dans mongoid

class Post 
    has_many :replies, class_name: 'PostReply', autosave: true 
end 

post.replies.count 
=> 3 
post.replies = [] 
=> [] 
post.replies.last 
=> #<Post...> 
# (also note that at this point, #count will return 3 and #length will return 0.) 

Je m'attendrais également à ce que ce comportement change avec la carte d'identité activée. Par exemple, la ligne finale utiliserait des réponses de la mémoire, et retournerait nul.

Qu'est-ce qui est incorrect dans ma pensée & hypothèses ici? Comment puis-je obtenir le comportement souhaité? Et une question bonus, où puis-je voir les journaux affichant les requêtes DB de l'IRB?

Merci!

+0

Montrez votre définition du modèle. Les réponses sont-elles vraiment intégrées ou référencées? –

+0

Oh bon appel, ceux-ci sont référencés avec 'has_many' –

+0

Mettez à jour le post alors :) –

Répondre

0

résolu en ajoutant la relation inverse:

class Post 
    has_many :replies, class_name: "PostReply", autosave: true, inverse_of: :post 
end 

class PostReply 
    belongs_to :post, inverse_of: :replies 
end 
Questions connexes