Где должны храниться пользовательские валидаторы Rails 3? - PullRequest
93 голосов
/ 10 марта 2011

Я видел, что документы / веб-сайты показывают, что пользовательские валидаторы должны находиться в каталоге /lib или /lib/validators проекта. Я обнаружил (прочитав ответ на другой пост), что они работают только в config/initializers. Кто-нибудь знает или имеет указатель на официальную документацию, которая показывает, где должны жить пользовательские валидаторы?

Ответы [ 4 ]

220 голосов
/ 07 июля 2011

Если вы поместите свои пользовательские валидаторы в app/validators, они будут автоматически загружены без необходимости изменения файла config/application.rb.

15 голосов
/ 09 апреля 2011

Если вы добавите это в ваш файл /config/application.rb:

config.autoload_paths += %W["#{config.root}/lib/validators/"]

Тогда Rails автоматически загрузит ваши валидаторы при запуске (как / config / initializer /), но вы сохранитечеткая структура размещения ваших валидаторов в одном хорошем, хорошо названном месте.

6 голосов
/ 10 марта 2011

lib/validators кажется самым чистым.Однако вам может потребоваться загрузить их перед вашими моделями, так что, вероятно, из инициализатора.

4 голосов
/ 10 марта 2011

Вот официальные документы о пользовательских проверках.AFAIK это хорошая практика, чтобы держать их в соответствующих моделях.

...