通过ActiveSupport ::关注或自定义验证的Rails动态模型验证

时间:2017-01-25 02:17:34

标签: ruby-on-rails activerecord activesupport activesupport-concern

... SO

我目前正在开发一个rails项目,该项目将导致创建具有类似费用属性的多个模型。我想要做的是创建一个可重用的验证机制。例如,我的模型可能是..

Foo
  currency
  producer_product_fee
  producer_transport_fee
  consumer_product_fee
  consumer_transport_fee

......我将有几个类似结构的模型(每次收费总是有两个不同的侧面)我想验证费用是非负数,有效数字,并且生产者费用总是低于相应的消费者费用。请注意,模型之间的不同属性可能被命名为完全不同,但可以假设生产者/消费者费用对的名称总是相同,但前缀除外。关于如何实现这一目标的任何提示都会很棒。

1 个答案:

答案 0 :(得分:0)

或许这样的事情?

validates_numericality_of :producer_product_fee, 
    less_than: Proc.new { |r| r.consumer_product_fee }, 
    greater_than_or_equal_to: 0,
    allow_blank: false