Я видел, что документы/веб-сайты показывают, что пользовательские валидаторы должны находиться в каталоге /lib
или /lib/validators
проекта. Я нашел (прочитав ответ на другой пост), что они работают только в config/initializers
. Кто-нибудь знает или имеет указатель на официальную документацию, показывающую, где должны жить пользовательские валидаторы?
Где должны храниться пользовательские валидаторы Rails 3?
Ответ 1
Если вы разместите свои собственные валидаторы в app/validators
, они будут автоматически загружены без изменения вашего файла config/application.rb
.
Ответ 2
Если вы добавите это в файл /config/application.rb:
config.autoload_paths += %W["#{config.root}/lib/validators/"]
Затем Rails автоматически загрузит ваши валидаторы при запуске (точно так же, как /config/initializers/ ), но вы сохраняете чистую структуру наличия валидаторов в одном хорошем, хорошо названном месте.
Ответ 3
lib/validators
кажется самым чистым. Однако вам может потребоваться загрузить их перед вашими моделями, поэтому, вероятно, из инициализатора.
Ответ 4
Здесь официальные документы о пользовательских проверках. AFAIK это хорошая практика, чтобы держать их в соответствующих моделях.