0

パスワード確認の検証に問題があります

ユーザーモデル:

 validates :password, :confirmation => true

およびビュー new.html.erb で:

 <%= form_for(@user) do |f| %>
   <div class="field">
     <%= f.label :password %><br />
     <%= f.password_field :password %><br />
     <%= f.label :password_confirmation %><br />
     <%= f.password_field :password_confirmation %><br />
   </div>
   <div class="actions">
     <%= f.submit %>
   </div>
 <% end %>

そのため、挿入されたデータについては、検証によってエラーがスローされます。:password_confirmation に問題があると思いますが、RoR は nil 値で受信しましたが、可能ですか? どのようにできるのか?

4

1 に答える 1

1

これを試して

class User < ActiveRecord::Base
  validates :password, :presence =>true, :confirmation =>true
  validates_confirmation_of :password
end

コントローラーは、ビューからデータを取得して保存を試みることを目的としています。これはビューのコードです。

<%= form_for(@user) do |f|%>
  <% if @user.errors.any? %>
    ....
    ....
  <% end %>
  <%= f.label :email %><br />
  <%= f.text_field :email %><br />
  <%= f.label :password %><br />
  <%= f.password_field :password %><br />
  <%= f.label :password_confirmation %><br />
  <%= f.password_field :password_confirmation %>
  <%= f.submit %>
<% end %>


NOTE: This check is performed only if password_confirmation is not nil, and by default    only on save. 
To require confirmation, make sure to add a presence check for the confirmation attribute:

http://ar.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html

于 2012-10-05T12:53:14.383 に答える