2017-05-04 45 views
0

我有两个型号。第一个ModelA是ModelB的父级。即ModelA has_many ModelB。 [当MODELA被破坏,其所有相关ModelB的也被摧毁,由于依赖摧毁 现在我有acts_as_paranoid范围:MODELAacts_as_list偏执宝石

有了这个,我也有acts_as_paranoid成立了这两种模型& B.

现在,当我销毁ModelA时,我不想在ModelB记录遭到破坏时调用ModelB中的回调函数。

特别是ModelB有一些被称为作为一个属性,当MODELA变得偏执破坏导致ModelB的位置属性来改变它获取更新的位置。 我不想改变位置,这样我就可以安全地恢复ModelA,它具有与以前一样的ModelB相同的记录和属性。

谢谢。

+0

你可以分享你的模型回调? –

+0

每当在modelB上调用destroy时,acts_as_list都会隐式调用该回调。 https://github.com/swanandp/acts_as_list/blob/master/lib/acts_as_list/active_record/acts/list.rb这里,函数'decrement_positions_on_higher_items'被隐式调用,它将所有随后的modelB记录的位置减1 1 –

+0

This应该来得心应手'禁止temporarily' https://github.com/swanandp/acts_as_list/blob/master/README.md#disabling-temporarily –

回答

0

由于每readme

ModelB.acts_as_list_no_update do 
    modela_instance.destroy 
end 

这应该工作。我希望我可以测试它,不幸的是没有这样的设置。让我知道是否有任何问题。 希望它可以帮助..


更新:语法,对于这种情况下的注释工作。

ModelB.acts_as_list_no_update([ModelB]) do 
    modela_instance.destroy 
end 
+0

嗨法汉,这实际上工作与微小的变化。我不得不更新acts_as_list到最新版本。 ModleB.acts_as_list_no_update [ModelB] {} –

+0

@AdilHussain我将不胜感激给予好评和/或接受的答案,因为它的工作。 –

+0

@法罕,对不起,我只是忘记了。感谢您的回答。 :) –