认为这是一项简单的任务,但是我对这个问题有点坚持:
想要在保存模型时更新模型的属性之一,因此在模型中有一个回调:
after_save :calculate_and_save_budget_contingency def calculate_and_save_budget_contingency self.total_contingency = self.budget_contingency + self.risk_contingency 自我保存 # => 这也不好用.... self.update_attribute :budget_contingency, (self.budget_accuracy * self.budget_estimate) / 1 结尾
并且网络服务器用消息回击ActiveRecord::StatementInvalid (SystemStackError: stack level too deep: INSERT INTO "versions"
这基本上告诉我有一个无限循环保存模型,after_save
然后我们再次保存模型......进入saving
模型的另一个循环
刚好卡在这个模型属性计算的这个时间点上。如果有人遇到过这个问题,并且有一个漂亮的/rails 解决方案,请在下面给我留言,谢谢