我正在寻找一种方法来传递要销毁的参数,以记录哪个用户负责记录的销毁。
我使用的每个模型都有一个对应的历史记录表,每次保存记录时,我都会在其中记录日志,记录中的所有参数以及哪个用户要求保存该记录。我想确保销毁记录时也这样做。
为了保存,我只用save
覆盖了save(user_id, source)
方法,因为我没有使用任何before_save
回调。使用destroy时,我想保留回调(has_many :submodel, dependent: destroy
),同时仍然强制执行日志记录。
理想情况下,我可以输入以下内容:
def destroy(user_id, source)
self.transaction do
#destroy all associations, using same user_id and source
self.log_descruction(user_id, source)
#destroy self
end
end
有什么建议吗?
答案 0 :(得分:0)
您无需保留before_save
。您不能使用before_destroy
回叫
请参阅:https://guides.rubyonrails.org/active_record_callbacks.html#destroying-an-object
您只需在before_destroy资源之前调用一个方法。然后用这种方法保存日志。