在我的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
嗯..当我这样做时,当试图摧毁一个团队时,我得到错误'参数的错误数量(0为1)' –
我编辑了我的答案以修复错误的位。显然after_destroy回调没有得到一个记录参数(不像before_save/after_save等) – Cade
你确定不会更新每个球员,无论球队?在哪里知道只更新指定球队的球员? –