如何在rails中禁用嵌套表单的服务器端验证
Posted
技术标签:
【中文标题】如何在rails中禁用嵌套表单的服务器端验证【英文标题】:How to disable server side validation of nested form in rails 【发布时间】:2019-09-08 18:08:41 【问题描述】:我已经对嵌套表单进行了服务器端验证。每个都有模型并在给定的服务器端验证中。 但是,保存时模型服务器端验证工作的主要形式,我已禁用它。 但是,我也禁用了嵌套表单模型服务器端验证,但它不起作用。
validates_presence_of :user_mob, :message => 'please enter the mobile number.' ,unless: :skip_valid
validates_presence_of :address, :message => 'please enter the address.', unless: :skip_valid
//这是主模型
类用户详细信息 'u_id'
validates_presence_of :year, :message => 'please enter the details.', unless: :skip_valid
validates_presence_of :user_name, :message => 'please enter the details.', unless: :skip_valid
validates_presence_of :user_address, :message => 'please enter the details.', unless: :skip_valid
validates_presence_of :user_mobile, :message => 'please enter the details.', unless: :skip_valid
validates_presence_of :user_type, :message => 'please enter the details.', unless: :skip_valid
结束
即使我给出了除非:在 netsted 表单模型中的 skip_valid。它不工作。 如何禁用嵌套表单模型服务器端验证。
【问题讨论】:
跳过验证最简单的方法是调用save(false)
false 表示您不想运行验证
另外,我在保存时将跳过验证设为 false,直到尚未工作
【参考方案1】:
validates_presence_of :year, :message => 'please enter the details.', if: ->(u) u.commit == 'submit' or u.commit == 'approve' or u.commit == '重新申请'
我们可以这样做。
【讨论】:
以上是关于如何在rails中禁用嵌套表单的服务器端验证的主要内容,如果未能解决你的问题,请参考以下文章