关于"动态"模型验证的建议

Ale*_*ani 6 ruby-on-rails

我有一个名为的模型Calendar.

将应用于它的验证与用户所做的选择不同.

我知道我可以使用自定义验证+条件验证来做到这一点,但对我来说看起来不是很干净.

我想知道我是否可以将它存储在数据库列中并将其传递给"通用"验证器方法.

你怎么看?

进一步解释:

用户有日历.
有权访问此日历的其他用户可以安排约会.

要安排约会,应用程序应根据日历所有者定义的规则进行验证.

有很多组合,所以我得到的是:

为每个可能的验证创建自定义验证器类,然后生成条件.

class Calendar
  validate_allowed_in_hollydays :appointment_date if :allowedinhollydays?
  (tenths of other cases)
  ...
end
Run Code Online (Sandbox Code Playgroud)

这有效,但感觉不对.

我正在考虑存储哪些规则应该应用于该日历,然后执行以下操作:

validate_stored_rules :appointment_date
Run Code Online (Sandbox Code Playgroud)

Ale*_*ani 0

感谢大家的帮助。

我已经让它像这样工作了:

def after_initialize        
  singleton = class << self; self; end

  validations = eval(calendar.cofig)

  validations.each do |val|
    singleton.class_eval(val)
  end
end
Run Code Online (Sandbox Code Playgroud)