Já vi documentos / sites mostrarem que os validadores personalizados devem ir para um diretório /lib
ou /lib/validators
de um projeto. Eu descobri (lendo uma resposta a outra postagem) que eles só parecem funcionar config/initializers
. Alguém sabe ou tem uma indicação da documentação oficial que mostra onde os validadores personalizados devem morar?
ruby-on-rails
validation
customvalidator
Daniel D
fonte
fonte
Respostas:
Se você colocar seus validadores personalizados,
app/validators
eles serão carregados automaticamente sem a necessidade de alterar seuconfig/application.rb
arquivo.fonte
spring stop
foi necessário para mim no Rails 5.2, caso contrário, não foi detectado.Se você adicionar isso ao seu arquivo /config/application.rb:
Então o Rails carregará automaticamente seus validadores na inicialização (assim como / config / initializers /), mas você mantém a estrutura limpa de ter seus validadores em um local bonito e bem nomeado.
fonte
config.autoload_paths += %W(#{config.root}/lib/validators/)
lib/validators
parece de longe o mais limpo. No entanto, você pode precisar carregá-los antes de seus modelos, provavelmente de um inicializador.fonte
Aqui estão os documentos oficiais sobre validações personalizadas. AFAIK é uma boa prática mantê-los nos modelos relevantes.
fonte