Antoine Wako
Antoine Wako

Reputation: 145

Update a column on update of others columns properly

I would like know a properly way to change a column value if others columns change, i know the classic way with one case return self.prices_updated_at = Time.zone.now if currency_changed?

But i dont know how write it more properly than that when i have many cases

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

    self.prices_updated_at = Time.zone.now

Upvotes: 3

Views: 749

Answers (1)

Vishal Jain
Vishal Jain

Reputation: 501

You can use changed_attributes

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

Upvotes: 1

Related Questions