user_signed_in? 总是返回false

我一直关注这些轨道广播

http://railscasts.com/episodes/209-introducing-devise&& http://railscasts.com/episodes/233-engage-with-devise用于用户身份validation,但每当我尝试查看用户是否已登录时,反应总是错误的。

我尝试了很多东西来尝试修复这个问题。 我尝试了不同版本的devise和devise_rpx_connectable。 我尝试在配置文件中更改设置。 我尝试使用不同的gem版本运行’rails generate devise:install’。

奇怪的是,当我将RPXNow.api_key更改为虚假的东西时,我没有收到错误,这是意外的行为。

这是我的application.html.erb文件中的代码:

 Signed in as . Not you?      

这是我的用户模型user.rb文件中的代码

 class User  true .....other stuff.... end 

这是我的Gemfile的一部分:

 gem 'rails', '3.2.6' gem 'devise','2.0.0' gem 'devise_rpx_connectable' 

这将获得devise_rpx_connectable gem版本0.2.2

这是我的initializers / devise.rb文件中的最新内容:

 Devise.setup do |config| config.mailer_sender = "please-change-me-at-config-initializers-devise@example.com" config.apply_schema = false require 'devise/orm/active_record' config.case_insensitive_keys = [ :email ] config.strip_whitespace_keys = [ :email ] config.skip_session_storage = [:http_auth] config.stretches = Rails.env.test? ? 1 : 10 config.reconfirmable = true config.use_salt_as_remember_token = true config.reset_password_within = 6.hours config.sign_out_via = :delete config.rpx_application_name = "appname" RPXNow.api_key = "" end 

这是在我们的routes.rb文件中:

 AppName::Application.routes.draw do root :to => "pages#home" match 'users/:id' => "users#index" devise_for :users end 

– 在ply评论后编写 – 我做了rails g migration add_rpx_to_users rpx_identifier:string

并运行rake db:migrate on this:

 class AddRpxToUsers < ActiveRecord::Migration def change add_column :users, :rpx_identifier, :string end end 

如果有人有任何想法,请分享。 我一整天都在努力解决这个问题。

非常感谢你!

这可能是因为您可能已在应用程序控制器中使用current_user方法。 因此,设计将不会看到其current_user方法的实现,因此它的辅助方法总是返回false。 只需删除或重命名您正在使用的current_user方法,这就解决了问题。

Interesting Posts