0

我收到一个Stack Level too deep错误,我认为这与以下代码有关,但我不确定如何修复它:

   after_save :update_milestone

   def update_milestone
      if order % 50 == 0
         self.update_attributes(is_milestone: true)
      else
         self.update_attributes(is_milestone: false)
      end
   end

有什么想法吗

4

1 回答 1

3

您正在调用 update_attributes 来进行验证。然后这会触发导致错误的回调 after_save。

你要:

self.update_column(:is_milestone, value)

这不会触发验证。

于 2014-02-04T19:51:30.110 回答