我有一个比赛模型和一个团队模型。
我想在保存比赛后运行一个实例方法(在团队模型内编写)。这就是我所拥有的。
team.rb
def goals_sum
unless goal_count_cache
goal_count = a_goals_sum + b_goals_sum
update_attribute(:goal_count_cache, goal_count)
end
goal_count_cache
end
它有效。现在我需要在保存比赛时运行它。所以我尝试了这个:
match.rb
after_save :Team.goals_sum
after_destroy :Team.goals_sum
但这不起作用。
我知道我错过了一些基本的东西,但我仍然无法完成它。有小费吗?
您可以只定义一个私有方法Match
委托给方法Team
(否则它怎么知道which运行该方法的团队?你说这是一个实例方法,我假设一场比赛有球队正在参加)。
after_save :update_teams_goals_sum
after_destroy :update_teams_goals_sum
private
def update_teams_goals_sum
[team_a, team_b].each &:goals_sum
end
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)