我有兩個或多個模型完全相同的自定義驗證方法。哪裏是放置這種驗證方法的最佳地點,以便兩種模型都可以訪問並保持乾燥?如果驗證失敗,我也想使用errors.add_to_base,所以無論這個方法放在哪裏,我都應該能夠適應這一點。Rails:跨多個模型的驗證,放在哪裏?
0
A
回答
0
在lib目錄中創建一個模塊,然後將其包含進來。您還可以創建一個父類,從中繼承模型並將其放在那裏,但對於簡單的事情來說,這看起來有點超過頂端。
0
最好的做法是創建一個自定義驗證器,該驗證器可以擴展ActiveModel::EachValidator
(如果屬性驗證)或ActiveModel::Validator
如果它有點複雜。
class DomainNameValidator < ActiveModel::EachValidator
該文件應該駐留在app/validators/contact_address_validator
以被rails自動加載。每個需要的是驗證可以指定
validates :name, uniqueness: true, domain_name: true
其中關鍵部分是domain_name: true
類。 _validator
是不需要的。如您所見,您的自定義驗證器可以與其他Rails內置驗證器結合使用。
相關問題
- 1. 跨多個頁面的Rails模型驗證
- 2. 在哪裏實現跨實體驗證?
- 3. 跨欄模型的驗證?
- 4. 跨多頁MVC模型驗證
- 5. Rails在哪裏放置您的Activemodel ::驗證器
- 6. Rails 4驗證:在進行包含時,在哪裏放置allow_nil?
- 7. 單頁多模型和驗證Rails 4.2
- 8. Rails驗證 - 在創建子模型時驗證父模型
- 9. Rails 3 Autocomplete跨越多個模型
- 10. Rails事務:ActiveRecord模型類在哪裏?
- 11. Rails:你把非模型代碼放在哪裏?
- 12. MVC驗證:在哪裏驗證?
- 13. Rails模型驗證 - validates_inclusion_of
- 14. 測試Rails模型驗證
- 15. Rails和模型驗證
- 16. Rails模型驗證 - validates_inclusion_of
- 17. Ruby on Rails - 模型驗證
- 18. Rails將驗證放在模塊mixin中?
- 19. 驗證複雜形式的多個子模型的rails
- 20. 在哪裏執行驗證
- 21. Rails:驗證多個模型的唯一性
- 22. Rails 3:放置自定義驗證器類的最佳位置在哪裏?
- 23. 的Rails 3.1:「在那裏」有多個條件,「不是零」驗證
- 24. 在rails中驗證模型關係
- 25. 在Rails 3.1中驗證數據模型
- 26. 在Rails中調試模型驗證
- 27. 在保存後驗證Rails模型?
- 28. Rails在一個模型中的4個不同的驗證
- 29. 去哪裏放置用戶模型?
- 30. Spring MVC的:在哪裏放置驗證,以及如何驗證實體引用