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 %>

チェックボックスは定義上 true または false であるため、クライアント側の検証は実際には必要ありません。サーバー側の検証により、ブール値以外の値を悪意を持って送信しようとする誰かから保護されます.

于 2013-01-11T00:46:26.403 に答える