允许使用单独的文件进行可配置的模型验证?

时间:2011-08-11 15:55:09

标签: ruby-on-rails ruby-on-rails-3 mongodb

我正在开发一个使用MongoDB的Rails 3应用程序。因此,可以在运行中将新密钥(即来自基于SQL的DB的字段或列)添加到模型中,而无需任何迁移或类似的开销。我正在使用MongoMapper ORM。

我有一个模型EmailTemplate,它从应用程序的config目录中的YAML文件中获取了几个键。这背后的想法是应用程序完全通用,新用例只需要修改配置文件而不是应用程序代码。

这很好用。现在,我想为几个键添加验证。理想情况下,由于密钥是从配置文件创建的,因此还应从配置文件创建验证,从而保持应用程序的可重用性。

我尝试在config中添加一个文件email_template_validations.rb,它定义了这样一个类:

class EmailTemplate::Validations
    include ActiveModel::Validations
    validates :countries, :presence => true
    validates :languages, :presence => true
    ...
end

然后在我的模型中,我正在做require config/email_template_validations。不幸的是,这是它崩溃的地方,我收到LoadError说:

Expected proj_dir/app/models/email_template.rb to define EmailTemplate

所以,问题:我在这里打最好的做法吗?有一个更好的方法吗?如何使用单独文件中的验证?

0 个答案:

没有答案