1

User モデルのみで destroy と delete をブロックし、コールバックをブロックしたい。簡単に言えば、ユーザー レコードを削除する可能性をブロックしたいと考えています。destroy メソッドと delete メソッドをオーバーライドしてみましたが、呼び出されず、ユーザーは常に削除されます。

class User < ActiveRecord::Base
  def destroy
  end

  def delete
  end
end

これに関連する gem は使用したくないので、gem を引用しないでください。これらのメソッドをオーバーライドすることが良い考えかどうかはわかりません。Rails コンソールでそれらが必要になる場合に備えて、'deactivate' メソッドを作成し、デフォルトの delete および destroy メソッドをそのままにしておく必要があります。

4

2 に答える 2

0

あなたの質問を完全に理解しているかどうかわかりません。

これを行う 1 つの方法は、destroyanddeleteメソッドを非公開にすることです。

メソッドが呼び出されることはありませんが、オブジェクトはとにかく削除されていると言います。これはどのように起こりますか?コレクションから削除していますか?Userこれら 2 つのインスタンス メソッドではなく、クラス メソッドをオーバーライドする必要がある場合があります。

于 2012-06-08T10:47:21.677 に答える