ruby-on-rails – RoR设计:sign_in总是返回无效的电子邮件/密码

前端之家收集整理的这篇文章主要介绍了ruby-on-rails – RoR设计:sign_in总是返回无效的电子邮件/密码前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
每次登录时,我收到电子邮件/密码无效的错误消息.

路线:

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,如果这有帮助任何人.

谢谢

编辑:

为了帮助未来的用户,实际上没有什么问题的宝石.工作正常问题在于我的数据库.由于某些原因,它正在从数据库中选择一个NULL电子邮件,而不是拉出我正在尝试登录用户的信息.我正在找出如何解决这个问题,一旦我找出结果,它将更新.

解决方法

我在Devise的全新安装中遇到了类似的问题,但是我发现,如果我运行捆绑更新,然后重新启动我的开发服务器它可以工作.

起初我没有在development.log中看到数据库查询,但是一旦更新了我的Gemfile(确保我使用最新的Devise gem)并重新启动了服务器,我现在看到我的日志文件中的数据库查询,它的工作原理(神奇).

希望有帮助.

Btw,不知道这是否会帮助你…但这些是我的路线.路线

devise_for :users,:path_names => { :sign_up => "register",:sign_in => "login",:sign_out => "logout",:settings => "settings" }

  devise_scope :user do
    get "login",:to => "devise/sessions#new"
    get "register",:to => "devise/registrations#new"
    get "settings",:to => "devise/registrations#edit"
    get "logout",:to => "devise/sessions#destroy"

  end

猜你在找的Ruby相关文章