Я работаю над приложением Rails 3, которое использует MongoDB. Таким образом, новые ключи (то есть поля или столбцы из баз данных на основе SQL) могут быть добавлены в модели на лету без необходимости каких-либо миграций или подобных накладных расходов. Я использую MongoMapper ORM.
У меня есть модель, EmailTemplate
, которая берет несколько своих ключей из файла 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
Итак, вопрос : Боремся ли я здесь с передовой практикой? Есть лучший способ сделать это? Как я могу использовать проверки из отдельного файла?