1

ストアに登録機能を提供する必要があります。そこで、ユーザーは名前、パスワード、確認パスワードを入力する必要があります。しかし、確認のために別のパスワードを入力しようとすると、エラーは表示されず、ユーザーは正常に登録されています。UserMODEl のコードは次のとおりです。

   class User < ActiveRecord::Base
       attr_accessible :name, :password_digest, :password, :password_confirmation
       validates :name, :presence => true, :uniqueness => true
       validates :password, :presence =>true,  :confirmation =>true
       validates_confirmation_of :password
       has_secure_password 
     end

そして、views/users/_form.html.erb の私のコードは次のとおりです..

 <div class="depot_form">
       <%= form_for(@user) do |f| %>
 <% if @user.errors.any? %>
  <div id="error_explanation">
  <h2><%= pluralize(@user.errors.count, "error") %> prohibited this user from being    saved:</h2>

  <ul>
  <% @user.errors.full_messages.each do |msg| %>
    <li><%= msg %></li>
  <% end %>
  </ul>
  </div>
 <% end %>

     <fieldset>
      <legend>Enter User Details</legend>
        <div >
     <%= f.label :name %>:
       <%= f.text_field :name, :size => 40 %>
      </div>
       <div>
       <%= f.label :password, 'Password' %>:
       <%= f.password_field :password, :size => 40 %>
       </div>
       <div>
       <%= f.label :password_confirmation, 'Confirm Password' %>:
       <%= f.password_field :password_confirmation, :size => 40 %>
       </div>
      <div>
         <%= f.submit %>
          </div>
       </fieldset>

     <% end %>

     </div>

私はさまざまな解決策と修正を行ってきましたが、無駄でした...助けてください..

4

2 に答える 2

5

この検証も追加します。

   validates :password_confirmation, :presence =>true

確認属性には引き続き存在チェックが必要です。

読む - http://guides.rubyonrails.org/active_record_validations_callbacks.html#confirmation

于 2013-03-28T07:01:37.927 に答える
0

このユースケースにはdevise gemを使用する必要があります。

およびデバイスの場合、この属性を使用します

    devise :database_authenticatable, :registerable, :confirmable, :recoverable,
 :rememberable, :trackable, :validatable

Deviseの詳細については、ここをクリックしてください

于 2013-03-28T09:17:05.153 に答える