满足条件时跳过某些字段的验证
Skip validation on certain field when a condition is met
您好,我在尝试执行以下操作时遇到了问题。
我正在制作一个结帐页面,我有一个这样的表格
<%= form_for([@ofert, @order], builder: FoundationFormBuilder) do |f| %>
<%= f.fields_for :invoice_address do |builder| %>
<%= render partial: 'invoice_address_fields', locals: { f: builder } %>
<% end %>
<%= f.check_box :invoice_equals_shipping, checked: true, label: 'My Invoice address is the same Shipping address' %>
<%= f.fields_for :shipping_address do |builder| %>
<%= render partial: 'shipping_address_fields', locals: { f: builder } %>
<% end %>
.....
<% end %>
复选框 "My Invoice address is the same Shipping address" 默认选中,"shipping_address" 字段默认使用 jquery 隐藏。
开始时两个字段都是空的,所以用户通常会填写 invoice_address 字段并选中复选框 "My Invoice address is the same Shipping address",问题是隐藏字段 "shipping_address" 已验证 "field cannot be blank"
如何验证选中复选框时不验证字段?
您可以在模型中向 validates
添加条件。类似于:
validates :shipping_address, presence: true, unless: :invoice_equals_shipping?
您好,我在尝试执行以下操作时遇到了问题。
我正在制作一个结帐页面,我有一个这样的表格
<%= form_for([@ofert, @order], builder: FoundationFormBuilder) do |f| %>
<%= f.fields_for :invoice_address do |builder| %>
<%= render partial: 'invoice_address_fields', locals: { f: builder } %>
<% end %>
<%= f.check_box :invoice_equals_shipping, checked: true, label: 'My Invoice address is the same Shipping address' %>
<%= f.fields_for :shipping_address do |builder| %>
<%= render partial: 'shipping_address_fields', locals: { f: builder } %>
<% end %>
.....
<% end %>
复选框 "My Invoice address is the same Shipping address" 默认选中,"shipping_address" 字段默认使用 jquery 隐藏。
开始时两个字段都是空的,所以用户通常会填写 invoice_address 字段并选中复选框 "My Invoice address is the same Shipping address",问题是隐藏字段 "shipping_address" 已验证 "field cannot be blank"
如何验证选中复选框时不验证字段?
您可以在模型中向 validates
添加条件。类似于:
validates :shipping_address, presence: true, unless: :invoice_equals_shipping?