【发布时间】:2011-09-17 20:52:16
【问题描述】:
每次登录时,我都会收到电子邮件/密码无效的错误消息。
路线:
devise_for :users
devise_scope :users do
get '/users/sign_out' => 'devise/sessions#destroy', :as => :destroy_user_session
post '/users/sign_in' => 'devise/sessions#create', :as => :user_session
end
resources :users
用户模型:
devise :database_authenticatable, :confirmable, :recoverable, :rememberable, :trackable
attr_accessor :password
attr_accessible :first_name, :last_name, :email, :password, :password_confirmation, :gender, :remember_me
查看:
<% if signed_in?(:user) %>
Hi <%= current_user.first_name %>. | Not you? <%= link_to 'Sign out', destroy_user_session_path, :method => :delete %>
<% else %>
<%= link_to 'Sign up', signup_path %> or <%= link_to 'Sign in', user_session_path, :method => :create %>
<% end %>
我尝试将路线更改为:
get '/users/sign_in' => 'devise/sessions#new', :as => :new_user_session
并更改各自的路径,但这并没有改变任何东西。
我什至将视图中的代码更改为:
if signed_in?(:user)
到:
if user_signed_in?
并做了这些事情的组合,没有任何工作。
我确实要求设计也处理确认,我通过将生成的链接复制到浏览器来做到这一点,它第一次以用户身份登录我。它还允许我通过电子邮件确认链接更改密码,该链接也会在更改密码时让我登录。但是一旦我退出并重新登录,它就会告诉我电子邮件/密码再次无效。
谁能帮忙?
我正在使用 rails 3.0.7、devise 1.4.5、capybara 1.1.1、cucumber 1.0.6、mysql2 0.2.6 和 rake 0.8.7,如果这对任何人都有帮助的话。
谢谢
编辑:
为了帮助未来的用户,gem 实际上并没有什么问题。它工作正常。问题出在我的数据库上。出于某种原因,它从数据库中选择了一个 NULL 电子邮件,而不是提取我尝试登录的用户的信息。我现在正在研究如何解决这个问题,一旦我弄清楚就会更新。
【问题讨论】:
-
运行迁移后重新启动服务器后,我的问题得到了解决。出于某种原因,服务器缓存了一些东西并且不接受凭据。
标签: ruby-on-rails ruby-on-rails-3 devise