我见过文档/网站显示自定义验证程序应该放在项目的/lib
或/lib/validators
目录中。我发现(通过阅读另一篇文章的答案)他们似乎只在config/initializers
中工作。有没有人知道,或者有一个指向官方文档的指针,显示自定义验证器应该存在的位置?
答案 0 :(得分:220)
如果您将自定义验证程序放在app/validators
中,它们将自动加载,而无需更改config/application.rb
文件。
答案 1 :(得分:15)
如果将其添加到/config/application.rb文件中:
config.autoload_paths += %W["#{config.root}/lib/validators/"]
然后Rails会在启动时自动加载验证器(就像/ config / initializers /一样),但是你保持干净的结构,让你的验证器在一个很好的,名字很好的位置。
答案 2 :(得分:6)
lib/validators
似乎是最干净的。但是,您可能需要在模型之前加载它们,因此可能来自初始化程序。
答案 3 :(得分:3)
以下是关于自定义验证的official docs。 AFAIK是一个很好的做法,可以让他们保持相关的模型。