web-dev-qa-db-fra.com

Où doit être stocké Rails 3 validateurs personnalisés?

J'ai vu des documents/sites Web montrer que les validateurs personnalisés devraient aller dans un /lib ou /lib/validators répertoire d'un projet. J'ai trouvé (en lisant une réponse à un autre post) qu'ils ne semblent fonctionner que dans config/initializers. Quelqu'un sait-il ou a-t-il un pointeur sur la documentation officielle qui montre où les validateurs personnalisés doivent vivre?

93
Daniel D

Si vous placez vos validateurs personnalisés dans app/validators ils seront automatiquement chargés sans avoir à modifier votre config/application.rb fichier.

220
gbc

Si vous ajoutez ceci à votre fichier /config/application.rb:

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

Alors Rails chargera automatiquement vos validateurs au démarrage (tout comme/config/initializers /), mais vous gardez la structure propre d'avoir vos valideurs dans un seul endroit bien nommé).

15
gunit888

lib/validators semble de loin le plus propre. Cependant, vous devrez peut-être les charger avant vos modèles, donc probablement à partir d'un initialiseur.

6
Jakub Hampl

Voici les documents officiels sur les validations personnalisées. L'AFAIK est une bonne pratique pour les conserver dans les modèles pertinents.

4
Shreyas