模型中的Ruby on Rails增量计数器

feb*_*ebs 5 model ruby-on-rails callback

我正在尝试从另一个模型中增加User表中的计数器.

class Count < ActiveRecord::Base
    belongs_to :user

    after_create :update_count

    def update_count
        user = User.find(self.user_id)
        user.increment(:count)
    end

end
Run Code Online (Sandbox Code Playgroud)

因此,当创建count时,目标是为该用户增加计数器列.目前它拒绝在创建后获得用户,我得到一个零错误.

我正在为我的用户使用设计

这是正确的(最佳实践)地点吗?我让它在控制器中工作,但想要清理它.

我对模型回调非常缺乏经验.

Sim*_*tti 11

如果User有许多Counts并且Count属于User(似乎是),那么您可能想要使用计数器缓存.它完全符合您的要求,并且内置于ActiveRecord中.

  • 工作得很完美.Rails makin太容易了:) (2认同)