我见过文档/网站显示自定义验证器应该放在项目的/lib
或/lib/validators
目录中。我发现(通过阅读另一篇文章的答案),他们似乎只在config/initializers
工作。有没有人知道,或有一个指向官方文档的指针,显示自定义验证器应该在哪里生存?应该在哪里存储Rails 3自定义验证器?
回答
如果您将您的自定义验证器置于app/validators
,它们将自动加载而无需更改您的config/application.rb
文件。
我不知道是否需要为此添加一些gem/config,但是在rails 3.2.8下这不起作用。具体来说,只需将验证程序放入应用程序/验证程序/ ???。rb中即可。 – Doug 2012-08-28 06:22:52
Doug尝试命名验证器文件的方式与验证器类的命名方式相同,但强调如下:MyCoolValidator转到app/validators/my_cool_validator.rb – equivalent8 2012-09-11 08:50:34
这应该是我认为的接受答案。 – DavidJ 2012-09-13 01:23:17
以下是关于自定义验证的official docs。 AFAIK有一个好的做法,让他们保持在相关的模型中。
除非它们适用于多个模型,否则您应该将它们放在其他地方以保持干燥。 – 2011-03-10 17:18:43
这是他们推测是因为否则有点为他们创建一个单独的类。 – 2011-03-10 17:29:41
@Jakub是的存在:单一职责原则 – mattwynne 2011-05-23 10:52:41
lib/validators
似乎到目前为止最干净。但是,您可能需要在模型之前加载它们,所以可能需要从初始化程序中加载它们。
如果您添加到您的/config/application.rb文件:
config.autoload_paths += %W["#{config.root}/lib/validators/"]
那么Rails会自动加载你的校验器在启动时(就像/配置/初始化/),但你保持清洁在一个很好的,有名的地方有你的验证器的结构。
好主意,但你的代码需要一些清理: 'config.autoload_paths + =%W(#{config.root}/lib/validators /)' – aNoble 2011-05-26 20:46:41
- 1. Rails 3 - 自定义验证
- 2. Rails 3:放置自定义验证器类的最佳位置在哪里?
- 3. Rails 3自定义验证器问题
- 4. rails 3自定义验证器错误
- 5. 在Zend框架中,我应该在哪里放置自定义验证器?
- 6. PHP:应该在哪里存储验证功能?
- 7. 我应该在Rails 5中放置自定义验证器?
- 8. 库在哪里应该在Rails 3中?
- 9. 我应该在哪里存储“MemberID”?
- 10. Rails 3 - 自定义验证程序
- 11. Rails 3自定义验证和shoulda
- 12. Rails 3的自定义验证
- 13. Subversion存储库应该在哪里?
- 14. 我应该在哪里存储公钥?
- 15. 哪里定义_counter在Rails 3集合
- 16. 在Rails 3中编写自定义验证器
- 17. 我应该在哪里存储len(list)?
- 18. Ruby on Rails:我应该在哪里存储模块?
- 19. MVC 3 jQuery自定义验证器
- 20. Rails 5自定义验证
- 21. 哪里存储角模板在Rails中?
- 22. SQL:应该在哪里定义主键
- 23. 我应该在哪里定义枚举?
- 24. vim在哪里存储自定义密钥映射缓存?
- 25. 我应该在哪里存储会话代码在Rails应用程序中?
- 26. 使用UsernamePasswordAuthenticationFilter将自定义后验证代码放在哪里
- 27. ASP.NET - 验证自定义验证器
- 28. 动态形式与自定义验证,我应该使用NoSQL或SQL存储?
- 29. 我应该在哪里存储浏览器指纹?
- 30. 我应该在哪里存储SSIS数据?
[改变接受答案标志] [http://stackoverflow.com/questions/5263239/where-should-rails-3-custom-validators-be-stored/6610270#comment16660135_6610270)? – JJD 2013-10-17 08:07:24