应该在哪里存储Rails 3自定义验证器?

Dan*_*l D 93 validation ruby-on-rails customvalidator

我见过的文档/网站显示,自定义验证应在去/lib/lib/validators项目的目录.我发现(通过阅读另一篇文章的答案)他们似乎只是在工作config/initializers.有没有人知道,或者有一个指向官方文档的指针,显示自定义验证器应该存在的位置?

gbc*_*gbc 220

如果您将自定义验证器放入其中,app/validators它们将自动加载,而无需更改您的config/application.rb文件.

  • Doug尝试命名验证器文件的方式与验证器类的命名方式相同,但强调:MyCoolValidator转到app/validators/my_cool_validator.rb (17认同)
  • @Doug你需要重启你的服务器.自动加载路径在初始化时展开,因此在您执行此操作之前不会获取新的子文件夹. (14认同)

gun*_*888 15

如果将其添加到/config/application.rb文件中:

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

然后Rails将在启动时自动加载验证器(就像/ config/initializers /),但是你保持干净的结构,让你的验证器在一个很好的,名字很好的位置.

  • 好主意,但你的代码需要一些清理:`config.autoload_paths + =%W(#{config.root}/lib/validators /)` (9认同)

Jak*_*mpl 6

lib/validators似乎是最干净的.但是,您可能需要在模型之前加载它们,因此可能来自初始化程序.