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