0

我正在使用 client_side_validation gem 在我的应用程序中进行 js 验证。我正在使用 simple_form 版本。

我的权限模型中有一个经过验证的布尔属性

 class Permission < ActiveRecord::Base
   validates :local, :regional, :national, :inclusion => {:in => [true, false]}
 end

但是在视图中,它们被呈现为复选框,其值为 1 或 0,因此它们永远不会被标记为已验证。

有任何想法吗?

4

1 回答 1

0

您必须设置:validate => false复选框。例如

<%= simple_form_for @permission, :validate => true do |f| %>
  <%= f.input :name, :label => 'Name' %>
  <%= f.label :local %>
  <%= f.check_box :local, :validate => false %>
  <%= f.label :national %>
  <%= f.check_box :regional, :validate => false %>
  <%= f.label :regional %>
  <%= f.check_box :national, :validate => false %>
  <%= f.button :submit %>
<% end %>

由于复选框的定义是真或假,客户端验证并不是真正必要的。通过服务器端验证,您仍然可以防止有人试图恶意提交非布尔值。

于 2013-01-11T00:46:26.403 回答