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 %>
?
Deviseが生成するデフォルトのセッション/新しいビューを変更したようです。これはデフォルトです: '<%= form_for(resource、as:resource_name、url:session_path(resource_name))do | f | %> 'だから、':session'はそれが想定していることをしていることを確認してください。 – mmichael
@ mmichaelありがとうございます - ちょうどあなたのバージョンにスワップし、それは動作します。私は間違って私たちのリソースをスワップできたと誤って推測しました:セッション –
問題ありません。この質問を残したいのであれば教えてください。コメントに基づいて回答を追加します。 – mmichael