我需要根据模型中的某个字段在Rails中对模型进行条件验证。这是对
earlier question
这促使开发出一种感觉不对劲的解决方案。
我有许多ActiveRecord模型都是基于“订单模型”,其简短版本如下所示。
class Order < ActiveRecord::Base
has_many: previous_addresses
has_one: applicant
has_one: current_address
end
所有其他型号都属于订单。
我希望根据订单的公司属性,不同地验证各种模型,如申请人、当前地址等。
我已经开发了一个解决方案,其中包括一个完整的手工滚动验证套件,支持所有标准的ActiveRecord验证程序。该解决方案是用许多表(如模型、字段、字段项等)开发的,这些表描述了验证过程并包含大量数据。
现在,我必须对这些数据进行操作,并为我所连接的每个新公司复制和编辑这些数据。这很冗长而且容易出错。
在阅读“Rails Way”时,我发现了一节,在这里,obie fernandez描述了将验证代码以activeRecord验证语句的形式保存在数据库中,并根据公司ID的值在运行时将其注入模型中。
我设想将数据保存在如下表格中:
company: 200
model: person
Code validates_length_of :middle_name, :maximum => 20, :allow_nil => true
company: 201
model: person
Code validates_length_of :middle_name, :maximum => 1, :allow_nil => true
因此,对于201公司,“john”的中间名将无法通过验证,但对于200公司来说这是可以的。
有人看到过这样做吗?如果有,他们有关于如何做的任何提示/建议吗?更好的是,有人有任何指向这样做的教程/代码的链接吗?