【发布时间】:2017-05-05 18:19:39
【问题描述】:
我有两个模型。第一个 ModelA 是 ModelB 的父级。即ModelA has_many ModelB。 [当modelA被销毁时,其所有依赖的ModelB也因依赖销毁而被销毁 现在我有了acts_as_paranoid 范围::ModelA
有了这个,我还为模型 A 和 B 设置了acts_as_paranoid。
现在,当我销毁 ModelA 时,我不想在 ModelB 记录被销毁时调用 ModelB 中的回调。
特别是,ModelB 有一个称为位置的属性,当 ModelA 被破坏导致 ModelB 的位置属性发生变化时,它会更新。 我不想改变位置,这样我就可以安全地恢复 ModelA 并使用与之前存在的 ModelB 相同的记录和属性。
谢谢。
【问题讨论】:
-
你能分享你的模型回调吗?
-
每当模型B 上调用destroy 时,acts_as_list 都会隐式调用回调。 github.com/swanandp/acts_as_list/blob/master/lib/acts_as_list/… 这里函数 'decrement_positions_on_higher_items' 被隐式调用,这会将所有后续 modelB 记录的位置递减 1
-
这应该很方便
disabling temporarilygithub.com/swanandp/acts_as_list/blob/master/… -
你有没有调查过让ModelB也变得偏执?那应该绕过它的正常销毁程序吗?我不是 100% 确定,但我认为它应该是这样工作的。在我的应用程序中,我没有将任何这些宝石用于该功能。我只有一些方法可以调用来“回收”和“恢复”一个项目,然后销毁功能永远不会被调用。然后,您可以使用范围默认隐藏这些“已删除”记录。
标签: ruby-on-rails acts-as-list acts-as-paranoid