ruby-on-rails - 更新属性 before_save 回调不保存额外的属性

标签 ruby-on-rails activerecord attributes callback

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

Controller

@blog.update(blog_params)

型号

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

最佳答案

您可以考虑改用 before_validation。 Rails 会在调用 before_save 之前调用 before_validation 回调,因此如果您需要确保设置了一个值,那么就可以这样做。

关于ruby-on-rails - 更新属性 before_save 回调不保存额外的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19707565/

相关文章:

ruby-on-rails - 为什么 Google Bot Crawling 不存在 CSS 文件?

ruby - Ruby Activerecord 中的组合更新

html - CSS data-content 属性转义反斜杠

ruby-on-rails - 如何在 Rails 5 中添加自定义谓词生成器?

javascript - 从 XML 文件中提取属性?

asp.net-mvc - AllowAnonymous 无法与自定义 AuthorizationAttribute 一起使用

ruby-on-rails - 使用 Rails 中的命名空间类防止 "warning: toplevel constant B referenced by A::B"

ruby-on-rails - Rails 控制台期间箭头键无法正常工作

ruby-on-rails - 在 bash 中匹配带有空白字符的字符串

ruby - 线程内的ActiveRecord太慢