仅在更新时降低佣金值

Decrease commission value on update only

目前我有一个包含百分比佣金属性的出价模型。创建出价后,用户只能在更新时减少固定佣金。实现这一目标的最佳方法是什么?如果属性增加或减少,我当前的代码会显示错误。

validate :check_if_commission_percentage_increased, on: :update

def check_if_commission_percentage_increased
  errors.add :base, 'You can only decrease your percentage commission' unless self.commission_percentage > self.commission_percentage
end
validate :method_name, on: :update

def method_name
  if commission_percentage > commission_percentage_was
    errors.add(:base, "error_message")
  end
end

*_was方法来自ActiveModel::Dirty。可以找到文档 here