ruby-on-rails - 正确更新其他列的更新列

标签 ruby-on-rails ruby

我想知道在其他列发生变化时更改列值的正确方法,我知道一个案例的经典方法return self.prices_updated_at = Time.zone.now if currency_changed?

但是遇到很多情况,我不知道怎么写比较合适

return unless currency_changed? || price1_changed? || price2_changed? ||
                  price3_changed? || price4_changed? ||
                  price5_changed? || price6_changed?

    self.prices_updated_at = Time.zone.now

最佳答案

您可以使用 changed_attributes

return unless (changed_attributes.keys & %w[currency price1 price2 price3 price4 price5 price6]).any?
self.prices_updated_at = Time.zone.now

关于ruby-on-rails - 正确更新其他列的更新列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71379825/

相关文章:

ruby-on-rails - 通过迭代 3 个不同的数组在 erb 中构建一个表

ruby-on-rails - 如何让自定义 Rake 任务在 Sinatra 中运行?

ruby-on-rails - DatabaseCleaner 似乎不会在诉讼之间清理

ruby-on-rails - 事件记录 : How can I get all of a user's cars without including those that have not been saved?

php - 如何使用 PHP 或 Ruby 从图像中去除某些颜色?

ruby-on-rails - Thin 很少会引发丢失的模板异常

ruby-on-rails - 在activeadmin中过滤值或IS NULL

ruby-on-rails - ActiveRecord select().where() 返回以 SELECT COUNT 开头的 SQL - 我不想要 COUNT

ruby-on-rails - 如何将 Rails 项目中的迁移文件设为 "clean up"?

javascript - Rails 3 从另一个站点拉取数据