3

如果许多其他属性不为 0,我正在使用 before_save 回调方法将属性设置为 true。当我更新模型但未设置额外属性时调用回调。我认为这可能是因为该属性没有传递给更新方法。我该如何解决这个问题?

控制器

@blog.update(blog_params)

模型

before_save do
  self.indicator = true unless attribute_1 == "0" && attribute_2 == "0"
end
4

2 回答 2

5

您可以考虑before_validation改用。Rails 会before_validation在它调用之前调用回调before_save,所以如果你需要确保你正在设置一个值,那就是这样做的地方。

于 2013-10-31T13:26:24.950 回答
3

尝试把true所有代码

before_save do
  self.indicator = true unless attribute_1 == "0" && attribute_2 == "0"
  true
end

所有回调都应该以任何方式返回 true

于 2013-10-31T13:24:55.007 回答