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 に答える