堆栈级别太深,可能是递归但不确定

时间:2014-02-04 19:50:05

标签: ruby-on-rails model callback stack-level

我收到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

任何想法

1 个答案:

答案 0 :(得分:3)

您正在调用验证验证的update_attributes。然后,这会触发导致错误的回调a​​fter_save。

你想:

self.update_column(:is_milestone, value)

这不会触发验证。