0

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

ヒントをありがとう!

4

1 に答える 1

0

私はこれに自分で答えます:Rails 4の場合、run_callbacks(:destroy) { ... }代わりに使用する必要があります。

于 2014-06-06T15:46:31.537 に答える