Rails 3:放置自定义验证器类的最佳位置在哪里?

bot*_*bot 6 ruby-on-rails-3

我已经看到了很多关于放置自定义验证类(扩展ActiveModel :: EachValidator)的最佳位置的线程,但无法确定哪一个是最佳实践.一些线程和教程说把它们放在'lib /'并修改'/config/application.rb',其他线程说如果你只是把它们放在'app/validators'中,它们会被自动包含在内......对此有何看法?这是什么最好的做法?

'libs /'解决方案有一个缺点,因为你必须修改'/config/application.rb',但据我所知,将它放在'app/validators'中会包含它,尽管你必须添加一个目录到app文件夹.这是正确的吗?谢谢!

ben*_*der 4

是的,当您将自定义验证器放入“app/validators”中时,它将自动包含在内。当您使用目录“lib”或“lib/validators”时,您必须将此行放入 config/application.rb 文件中:

config.autoload_paths += %W(#{config.root}/lib)
Run Code Online (Sandbox Code Playgroud)

或者

config.autoload_paths += %W(#{config.root}/lib/validators)
Run Code Online (Sandbox Code Playgroud)