has_many:throughモデルは完全に動作します。Rails:dependent =>破壊する、破棄するのではなく別のアクションを呼び出す
has_many :varietals
has_many :grapes, :through => :varietals, :dependent => :destroy
以下の代わりに、別のアクションを呼び出したいと思います。実際には、アイテムを無効にしたり破壊したりしたくないので、レコードを破棄するのではなく、レコードのステータスフィールドを1から0に更新します。
破壊する代わりにカスタムメソッドを呼び出す方法はありますか?私はモデル自体でそれを行うことができると思います...ありがとう。
ここにこのメソッドを挿入しますか?レコードが破壊されるマスターモデルまたはモデルでは?
EDIT:
すみませんが、私は十分に私の問題を説明していなかったと思います。マスターモデルが破壊された後、私の問題は何かにだけではありません。マスターレコードが破棄されていない場合でも、バリエールモデル自体の破棄アクションをカスタム化する必要があります。以下のような
何か:実はこのアクションが呼び出されない
class Varietal < ActiveRecord::Base
private
def destroy
self.update_attributes(:status => 0)
end
end
...
などを説明します。
あなたも、この記事を読むことができますか? –
私の以前のコメント(削除されたもの)を見ても大丈夫です...フィヨンとシンガラには正しいテイクがあります。 – ScottJShea
申し訳ありませんが、問題は私のモデルの関連付けではありません。モデルが1つだけの場合、destroyメソッドを上書きしてその動作を変更することはできません。これは何もしません。前または後のコールバックを追加しても破棄は変更されません。アイテムは破棄されます。 –