Ich habe gesehen, dass Dokumente / Websites zeigen, dass benutzerdefinierte Validatoren in ein /lib
oder /lib/validators
Verzeichnis eines Projekts verschoben werden sollten . Ich habe festgestellt (indem ich eine Antwort auf einen anderen Beitrag gelesen habe), dass sie nur zu funktionieren scheinen config/initializers
. Kennt jemand die offizielle Dokumentation oder hat er einen Hinweis darauf, wo benutzerdefinierte Validatoren leben sollten?
ruby-on-rails
validation
customvalidator
Daniel D.
quelle
quelle
Antworten:
Wenn Sie Ihre benutzerdefinierten Validatoren einfügen
app/validators
, werden diese automatisch geladen, ohne dass Sie Ihreconfig/application.rb
Datei ändern müssen .quelle
spring stop
war für mich in Rails 5.2 notwendig, sonst wurde es nicht abgeholt.Wenn Sie dies zu Ihrer Datei /config/application.rb hinzufügen:
Dann lädt Rails Ihre Validatoren beim Start automatisch (genau wie / config / initializers /), aber Sie behalten die saubere Struktur bei, Ihre Validatoren an einem schönen, gut benannten Ort zu haben.
quelle
config.autoload_paths += %W(#{config.root}/lib/validators/)
lib/validators
scheint bei weitem das sauberste. Möglicherweise müssen Sie sie jedoch vor Ihren Modellen laden, also wahrscheinlich von einem Initialisierer.quelle
Hier sind die offiziellen Dokumente zu benutzerdefinierten Validierungen. AFAIK ist eine gute Praxis, um sie in den relevanten Modellen zu halten.
quelle