2013-07-11 52 views
2

我正在使用Mongoid,并且我有一个类(Order),即另一个类(LineItem)的“embeds_many”。具体来说,为了我有:cascade_callbacks不适用于mongoid中的嵌入式文档

embeds_many :line_items, cascade_callbacks: true 

而在LineItem的,我有:

embedded_in :order 

一切正常,因为它应该除了cascading_callbacks。当我对Order对象进行更改并调用“save”时,我会希望调用所有嵌入的LineItem对象的“after_save”回调。这没有发生。我认为这是cascading_callbacks的一点。

我错了吗?当保存父项并且cascade_callbacks在关系中被设置为true时,是否还需要其他东西来使每个嵌入文档的保存相关回调触发?

回答

1

我认为,当您在父文档中指定级联回调:true时,只有在对相应的嵌入文档进行任何更改时才会触发嵌入文档的回调。

要检查,更改嵌入文档中的内容并保存父文档。在这种情况下,我认为回调将被解雇

+0

是的,这是我在创建此问题之前看到的行为。但是,这是整个问题。 Mongoid文档是这样编写的,它们似乎声称保存父文档时会触发所有回调。但是,这似乎并非如此。而我的问题是,“是否有办法让这种情况发生?”,因为那是我所寻找的行为。 – user2571294