2017-01-23 54 views
0

全新安装Devise,我可以注册一个新用户。但注销后,我无法登录并设计返回“无效的电子邮件或密码”。Rails 5&Devise:登录总是返回不正确的密码

当我看着User.last我看到正确的电子邮件。 User.last.password为零且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谢谢 - 只是交换到您的版本,它的工作原理。我错误地认为我可以交换我们的资源:session –

+0

没问题。如果您想保留此问题,请告知我,我会根据我的评论添加答案。 – mmichael

回答

1

看起来像您修改了Devise生成的默认sessions/new view

这是默认:

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

,以便确保:session是做什么它应该。

相关问题