我正在开发一个使用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
所以,问题:我在这里打最好的做法吗?有一个更好的方法吗?如何使用单独文件中的验证?