【发布时间】:2009-04-17 17:01:14
【问题描述】:
我需要根据模型中的一个字段对 Rails 中的模型进行条件验证。这是earlier question 的后续行动,它促使开发了一个感觉不对的解决方案。
我有许多基于“订单模型”的 ActiveRecord 模型,其简化版本如下所示。
class Order < ActiveRecord::Base
has_many: previous_addresses
has_one: applicant
has_one: current_address
end
所有其他模型都属于订单。
我希望根据订单的公司属性以不同的方式验证各种模型,例如申请人、当前地址等。
我为此开发了一个解决方案,其中涉及一个完整的手动验证套件,支持所有标准的 activeRecord 验证器。该解决方案是使用许多表(例如模型、字段、field_items 等)开发的,这些表描述了验证并包含大量数据。
我现在必须为我连接的每家新公司处理这些数据并复制和编辑它。这是乏味且容易出错的。
在阅读“The Rails Way”时,我发现 Obie Fernandez 描述了将验证代码以 ActiveRecord 验证语句的形式保存在数据库中并在运行时根据公司 ID 的值将这些代码注入模型的部分。
我想将数据保存在如下表中:-
公司:200 型号:人 代码 validates_length_of :middle_name, :maximum => 20, :allow_nil => true 公司:201 型号:人 代码 validates_length_of :middle_name, :maximum => 1, :allow_nil => true因此,对于公司 201,中间名“John”将无法通过验证,但对于公司 200 则可以。
有没有人看过这个,如果有的话,他们有关于如何做的任何提示/建议,更好的是,有人有任何教程/代码的链接吗?
【问题讨论】:
标签: ruby-on-rails validation activerecord