2017-01-23 6 views
0

Deviseの新規インストールでは、新しいユーザーを登録できます。しかし、ログアウトした後、私はログインできず、「無効なメールまたはパスワード」を返します。Rails 5&Devise:ログインは常に不正なパスワードを返します

User.lastを見ると、正しいメールが表示されます。 User.last.passwordはnilで、User.last.encrypted_passwordは暗号化されたパスワードを返します。

ルート:新

resources :users 
devise_for :users, path: '', path_names: { sign_up: 'register', sign_in: 'login', sign_out: 'logout'} 

登録/:新しい

<%= form_for(resource, as: resource_name, url: user_registration_path, :html => {:class => "col s12 form-text"}) do |f| %> 
     <div class="row"> 
     <div class="input-field col s12"> 
      <%= f.text_field :full_name, :class => "validate", :placeholder => "Robin Smith" %> 

      <%= f.label :full_name, :class => "allcaps" %> 
     </div> 
     </div> 

     <div class="row"> 
     <div class="input-field col s12"> 
      <%= f.email_field :email, :class => "validate" %> 
      <%= f.label :email, :class => "allcaps" %> 
     </div> 
     </div> 

     <div class="row"> 
     <div class="input-field col s12"> 
      <%= f.password_field :password, :class => "validate" %> 
      <%= f.label :password, :class => "allcaps" %> 
     </div> 
     </div> 

     <div class="button-container"> 
     <%= f.submit :class => "waves-effect waves-light btn-flat", :value => "Join Now" %> 
     </div> 
    <% end %> 

セッション/:

私は間違っているつもりです
<%= form_for :session, :html => {:class => "col s12 form-text"} do |f| %> 
     <div class="row"> 
     <div class="input-field col s12"> 
      <%= f.email_field :email, :class => "validate" %> 
      <%= f.label :email, :class => "allcaps" %> 
     </div> 
     </div> 

     <div class="row"> 
     <div class="input-field col s12"> 
      <%= f.password_field :password, :class => "validate" %> 
      <%= f.label :password, :class => "allcaps" %> 
     </div> 
     </div> 

     <div class="button-container"> 
     <%= f.submit :class => "waves-effect waves-light btn-flat", :value => "Login" %> 
     </div> 
    <% end %> 

+0

Deviseが生成するデフォルトのセッション/新しいビューを変更したようです。これはデフォルトです: '<%= form_for(resource、as:resource_name、url:session_path(resource_name))do | f | %> 'だから、':session'はそれが想定していることをしていることを確認してください。 – mmichael

+0

@ mmichaelありがとうございます - ちょうどあなたのバージョンにスワップし、それは動作します。私は間違って私たちのリソースをスワップできたと誤って推測しました:セッション –

+0

問題ありません。この質問を残したいのであれば教えてください。コメントに基づいて回答を追加します。 – mmichael

答えて

1

Deviseが生成するデフォルトのsessions/new viewを変更したようです。

これがデフォルトです:

<%= form_for(resource, as: resource_name, url: session_path(resource_name)) do |f| %> 

ので:sessionは、それがになって何やっていることを確認してください。

関連する問題