Widziałem dokumenty / strony internetowe pokazujące, że niestandardowe walidatory powinny znajdować się w katalogu /lib
lub /lib/validators
projektu. Odkryłem (czytając odpowiedź na inny post), że wydają się tylko działać config/initializers
. Czy ktoś wie lub ma wskaźnik do oficjalnej dokumentacji, która pokazuje, gdzie powinny znajdować się niestandardowe walidatory?
ruby-on-rails
validation
customvalidator
Daniel D.
źródło
źródło
Odpowiedzi:
Jeśli umieścisz w nim własne walidatory
app/validators
, zostaną one automatycznie załadowane bez konieczności modyfikowaniaconfig/application.rb
pliku.źródło
spring stop
było mi potrzebne w Railsach 5.2, inaczej nie zostało odebrane.Jeśli dodasz to do swojego pliku /config/application.rb:
config.autoload_paths += %W["#{config.root}/lib/validators/"]
Wtedy Railsy automatycznie załadują twoje walidatory przy starcie (tak jak / config / initializers /), ale zachowujesz przejrzystą strukturę posiadania walidatorów w jednym ładnym, dobrze nazwanym miejscu.
źródło
config.autoload_paths += %W(#{config.root}/lib/validators/)
lib/validators
wydaje się zdecydowanie najczystszy. Jednak może być konieczne załadowanie ich przed modelami, więc prawdopodobnie z inicjatora.źródło
Oto oficjalne dokumenty dotyczące niestandardowych weryfikacji. AFAIK to dobra praktyka, aby trzymać je w odpowiednich modelach.
źródło