如果许多其他属性不是0,我正在使用before_save回调方法将属性设置为true。当我更新模型但未设置额外属性时,将调用回调。我认为可能是因为该属性未传递给update方法。我该如何解决这个问题?
控制器
@blog.update(blog_params)
模型
before_save do
self.indicator = true unless attribute_1 == "0" && attribute_2 == "0"
end
答案 0 :(得分:5)
您可以考虑使用before_validation
。 Rails会在调用before_validation
之前调用before_save
回调,因此如果您需要确保设置一个值,那么就可以这样做。
答案 1 :(得分:3)
尝试将true
放在所有代码
before_save do
self.indicator = true unless attribute_1 == "0" && attribute_2 == "0"
true
end
所有回调都应该以任何方式返回