我有两个或多个模型完全相同的自定义验证方法。哪里是放置这种验证方法的最佳地点,以便两种模型都可以访问并保持干燥?如果验证失败,我也想使用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的:在哪里放置验证,以及如何验证实体引用