ユーザーが調査を持っていない限り、ユーザーはハード破棄しかできないため、ユーザー モデルに安全な破棄メソッドを実装しました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
。
ヒントをありがとう!