I\'ve seen docs/websites show that custom validators should go in a /lib
or /lib/validators
directory of a project. I\'ve found (by reading an answ
lib/validators
seems by far the cleanest. However you may need to load them in before your models, so probably from an initializer.
If you add this to your /config/application.rb file:
config.autoload_paths += %W["#{config.root}/lib/validators/"]
Then Rails will automatically load your validators on start up (just like /config/initializers/), but you keep the clean structure of having your validators in one nice, well named spot.
Here's the official docs about custom validations. AFAIK its a good practice to keep them in the relevant models.
If you place your custom validators in app/validators
they will be automatically loaded without needing to alter your config/application.rb
file.