He visto documentos / sitios web que muestran que los validadores personalizados deben ir en un directorio /lib
o /lib/validators
de un proyecto. Descubrí (leyendo una respuesta a otra publicación) que solo parecen funcionar config/initializers
. ¿Alguien sabe o tiene un puntero a la documentación oficial que muestra dónde deberían vivir los validadores personalizados?
ruby-on-rails
validation
customvalidator
Daniel D
fuente
fuente
Respuestas:
Si coloca sus validadores personalizados,
app/validators
se cargarán automáticamente sin necesidad de modificar suconfig/application.rb
archivo.fuente
spring stop
era necesario para mí en Rails 5.2, de lo contrario, no se recogió.Si agrega esto a su archivo /config/application.rb:
Luego, Rails cargará automáticamente sus validadores al iniciar (como / config / initializers /), pero usted mantiene la estructura limpia de tener sus validadores en un lugar agradable y bien nombrado.
fuente
config.autoload_paths += %W(#{config.root}/lib/validators/)
lib/validators
parece de lejos el más limpio. Sin embargo, es posible que deba cargarlos antes que sus modelos, por lo que probablemente desde un inicializador.fuente
Aquí están los documentos oficiales sobre validaciones personalizadas. AFAIK es una buena práctica mantenerlos en los modelos relevantes.
fuente