Разрешить настраиваемые проверки моделей с использованием отдельных файлов? - PullRequest
1 голос
/ 11 августа 2011

Я работаю над приложением 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

Итак, вопрос : Боремся ли я здесь с передовой практикой? Есть лучший способ сделать это? Как я могу использовать проверки из отдельного файла?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...