Ruby on rails 3.1 在Rails中销毁回调顺序之后
我使用PostgreSql作为数据库,使用Rails 3.1.3和ruby 1.9.3 我有三种型号Ruby on rails 3.1 在Rails中销毁回调顺序之后,ruby-on-rails-3.1,callback,Ruby On Rails 3.1,Callback,我使用PostgreSql作为数据库,使用Rails 3.1.3和ruby 1.9.3 我有三种型号 活动 ActivityObject ActivityObjectActivity 他们是这样联系的 活动 有很多:活动\u对象\u活动,:依赖=>:销毁 有多个:活动对象,:至=>:活动对象 销毁后:做一些与活动相关的事情 ActivityObject 有很多:活动\u对象\u活动,:依赖=>:销毁 有很多:活动,:通过=>:活动\u对象\u活动 ActivityObjectActivity
活动
ActivityObject
ActivityObjectActivity
有多个:活动对象,:至=>:活动对象 销毁后:做一些与活动相关的事情 ActivityObject 有很多:活动\u对象\u活动,:依赖=>:销毁
有很多:活动,:通过=>:活动\u对象\u活动 ActivityObjectActivity 属于:活动,:依赖=>:销毁
属于:活动对象 当我对活动执行销毁时,我观察到
activity\u object\u activities
表项在调用do\u something\u on\u activity\u object\u related
之前被删除,原因是依赖:销毁。
因此,当活动被销毁时,当调用与活动对象相关的do\u something\u on\u activity\u object\u
方法时,它无法找到与活动相关的activity\u object
在销毁与活动相关的关联之前,是否有一种方法可以调用此do\u something\u on\u activity\u object\u related
。
有没有办法在销毁后更改回调的顺序
提前感谢。您可以自己对删除/销毁依赖项负责,并确保在您完成do\u something\u on\u activity\u object\u相关的
所以不是
has_many :activity_object_activities,:dependent => :destroy
has_many :activity_objects, :through => :activity_object_activities
after_destroy :do_something_on_activity_object_related
这样做:
has_many :activity_object_activities
has_many :activity_objects, :through => :activity_object_activities
after_destroy do
do_something_on_activity_object_related
ActivityObjectActivity.destroy_all(activity_id: self.id)
end
从联接表中删除项目时,可以使用delete\u all
而不是destroy\u all
。但你在例子中使用了destroy,我在这里也使用了