我見過文檔/網站顯示自定義驗證器應該放在項目的/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. 我應該在哪裏存儲自定義php日誌?
- 6. 在Zend框架中,我應該在哪裏放置自定義驗證器?
- 7. PHP:應該在哪裏存儲驗證功能?
- 8. Zend Framework - 我們應該在哪裏放置自定義驗證器?
- 9. 庫在哪裏應該在Rails 3中?
- 10. 我應該在Rails 5中放置自定義驗證器?
- 11. 我應該在哪裏存儲「MemberID」?
- 12. Rails 3自定義驗證器'stomps'現有驗證
- 13. Rails 3的自定義驗證
- 14. Rails 3自定義驗證和shoulda
- 15. Rails 3 - 自定義驗證程序
- 16. 應該在哪裏做業務驗證
- 17. 我應該在哪裏放驗證碼?
- 18. Subversion存儲庫應該在哪裏?
- 19. 我應該在哪裏存儲公鑰?
- 20. 我應該在哪裏存儲cookie?
- 21. 哪裏定義_counter在Rails 3集合
- 22. 哪裏把自定義驗證器在Laravel?
- 23. ASP.NET MVC 3 - 自定義驗證器
- 24. 我應該在哪裏存儲len(list)?
- 25. 應該在哪裏存儲繼承類?
- 26. Laravel 4自定義驗證規則 - 在哪裏擴展驗證器?
- 27. 在Rails 3中編寫自定義驗證器
- 28. Ruby on Rails:我應該在哪裏存儲模塊?
- 29. MVC 3自定義驗證
- 30. Rails 3自定義驗證問題:驗證日期
[改變接受答案標誌] [http://stackoverflow.com/questions/5263239/where-should-rails-3-custom-validators-be-stored/6610270#comment16660135_6610270)? – JJD 2013-10-17 08:07:24