Where should Rails 3 custom validators be stored?

旧巷老猫 提交于 2020-01-19 04:42:58

问题


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 answer to another post) that they only seem to work in config/initializers. Does anyone know, or have a pointer to official documentation that shows where custom validators should live?


回答1:


If you place your custom validators in app/validators they will be automatically loaded without needing to alter your config/application.rb file.




回答2:


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.




回答3:


lib/validators seems by far the cleanest. However you may need to load them in before your models, so probably from an initializer.




回答4:


Here's the official docs about custom validations. AFAIK its a good practice to keep them in the relevant models.



来源:https://stackoverflow.com/questions/5263239/where-should-rails-3-custom-validators-be-stored

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!