我正致力于在rails中创建游戏,但我遇到了创建评分逻辑的问题。
我有一个名为Score的模型,它属于一个用户并且有total_points作为属性。
因此,每当用户创建帖子(或其他)时,我都会自动调整用户的total_score属性。
我有一种感觉,我可以在得分模型中的某处创建一个方法,但之前没有这样做,所以我有点困惑。
答案 0 :(得分:5)
这是ActiveRecord回调的好用例。
#post.rb
belongs_to :score
after_create :update_total_score
protected
def update_total_score
score.update_attribute :total_score, score.total_score + new_score_value
end
注意:如果帖子是可更新的,那么你会想要使用after_save,但我的猜测是after_create就是你要找的东西
祝你好运!