我已经为我们的用户模型实现了一个安全销毁方法,因为除非用户有调查,否则用户只能被硬销毁,否则,软破坏(通过设置deleted_at
)就完成了:
alias_method :original_destroy, :destroy
def destroy
if surveys.any?
update_column :deleted_at, DateTime.now
surveys.each { |s| s.anonymize }
send :_run_destroy_callbacks
@destroyed = true
freeze
else
original_destroy
end
end
我不确定是否有更好的方法来销毁dependent: destroy
以上的所有关联,而不是上面的send :_run_destroy_callbacks
行。
感谢您的提示!
答案 0 :(得分:0)
我将自己回答:对于Rails 4,您应该使用run_callbacks(:destroy) { ... }
代替。