为什么这是一个无限循环?ActiveRecord的

Kar*_*tle 0 ruby activerecord model

class Account < ActiveRecord::Base
  after_update :give_user_credit, :on => :update 

  def give_user_credit
    credit = User.current_user.credit + 3.8
    User.current_user.update_attribute(:credit, credit)
  end
end
Run Code Online (Sandbox Code Playgroud)

当我使用它时服务器挂起,当我完全重新启动后回到应用程序时,我的信用额度为1000英镑.

这里发生了什么..

感谢:D

ewa*_*all 6

在我看来,:give_user_credit callback每次更新记录时都要设置运行.

但是由于回调更新了记录,它会再次触发回调,这将继续...