Ruby on rails 堆栈级别太深,可能是递归的,但不确定
我得到了一个Ruby on rails 堆栈级别太深,可能是递归的,但不确定,ruby-on-rails,model,callback,stack-level,Ruby On Rails,Model,Callback,Stack Level,我得到了一个堆栈级别太深的错误,我认为这与以下代码有关,但我不确定如何修复它: 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
堆栈级别太深的错误,我认为这与以下代码有关,但我不确定如何修复它:
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
任何想法您调用的是命中验证的更新属性。这会在保存后触发回调,从而导致错误
你想要:
self.update_column(:is_milestone, value)
这不会触发验证。您正在调用命中验证的更新属性。这会在保存后触发回调,从而导致错误
你想要:
self.update_column(:is_milestone, value)
这不会触发验证。您正在调用命中验证的更新属性。这会在保存后触发回调,从而导致错误
你想要:
self.update_column(:is_milestone, value)
这不会触发验证。您正在调用命中验证的更新属性。这会在保存后触发回调,从而导致错误
你想要:
self.update_column(:is_milestone, value)
这不会触发验证。而不是使用带有两个更新的if语句。。。为什么不在更新中使用条件的值?如下所示:self.update\u属性(is\u里程碑:order%50==0)
而不是使用带有两个更新的if语句。。。为什么不在更新中使用条件的值?如下所示:self.update\u属性(is\u里程碑:order%50==0)
而不是使用带有两个更新的if语句。。。为什么不在更新中使用条件的值?如下所示:self.update\u属性(is\u里程碑:order%50==0)
而不是使用带有两个更新的if语句。。。为什么不在更新中使用条件的值?如下所示:self.update\u attributes(is\u milestone:order%50==0)
保存后更新\u milestone
->自我。保存后更新\u attributes
->更新\u milestone
->自我。更新\u attributes
->谢谢您的建议<代码>保存后
->更新里程碑
->自我。更新属性
->保存后
->更新里程碑
->自我。更新里程碑
->谢谢您的建议<代码>保存后
->更新里程碑
->自我。更新属性
->保存后
->更新里程碑
->自我。更新里程碑
->谢谢您的建议<代码>保存后->更新里程碑
->自我。更新属性
->保存后
->更新里程碑
->自我。更新里程碑
->谢谢您的建议!