私のRoRアプリケーションでは、私は以下の関係を持っています。チームには多くのプレーヤーがあり、プレーヤーはチームに属しています。RoR削除時の子どもの属性の更新
私がしたいことは、プレーヤーのチームが削除されたときに、プレーヤーの列team_id
の値を '10'(フリーエージェント)に変更することです。ここでは、私のteams
モデルは次のようになります。「あなたはにオブジェクトを追加したり、関連のコレクションからオブジェクトを削除すると、」
class Team < ActiveRecord::Base
has_many :players, :after_remove => :make_free_agents
def make_free_agents(player)
player.update_attribute(:team_id, "0")
end
end
Hmm ..私がこれをすると、チームを破壊しようとすると「間違った引数(0のための1)」が返されます –
私は間違ったビットを修正するために私の答えを編集しました。どうやら、after_destroyコールバックはレコードパラメータを取得しません(before_save/after_saveなどと違って) – Cade
あなたはチームに関係なく、すべてのプレーヤーを更新することはありませんか?指定されたチームの選手だけを更新することはどこで知っていますか? –