Где должны храниться пользовательские валидаторы Rails 3?

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

Ответ 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 это хорошая практика, чтобы держать их в соответствующих моделях.