我有用户模型,其中包含7个字段。对于所有这些字段验证是写的。我有两个表单,我显示字段取决于条件。在一种形式我有名称密码和城市和其他形式我有角色,电话和名称。
当我尝试提交第一个表单时,我收到错误,说明需要电话和角色字段导致表单失败。
有没有办法可以在不收到验证错误的情况下提交两个表单?
注意:我希望我的逻辑只在模型中..请帮我解决这个问题。
答案 0 :(得分:2)
您可以使用条件验证来实现您的目标:
见这里:http://guides.rubyonrails.org/active_record_validations.html#conditional-validation
然而,这很快就难以管理。根据您正在启动的条件,使用“表单对象”可能会更简洁,它可以为您提供更多控制,让您在没有混乱条件逻辑的情况下进行验证。
有关更多详细信息,请参阅此博客文章的第3部分: http://blog.codeclimate.com/blog/2012/10/17/7-ways-to-decompose-fat-activerecord-models/
使用此模式,您将检查控制器中的条件,然后确定要发送到视图的表单对象。