我在Rails 2.3.5上运行了官方的authlogic插件。我将我的应用程序转换为Rails 3.0.1,现在我遇到了一些问题。
我在我的gemfile中包含了以下authlogic gem
gem 'authlogic', :git => 'git://github.com/odorcicd/authlogic.git', :branch => 'rails3'
当用户登录时,会话将被保存。调用该用户会话时,返回的值为nil。 UserSession.find returns a nil value
所以我无法分配current_user。
sessions_controller.rb
def create
@user_session = UserSession.new(params[:user_session])
if @user_session.save!
flash[:notice] = 'Login successful'
redirect_to root_url
else
render :action => 'new'
end
end
application_controller.rb
helper_method :current_user, :current_user_session
private
def current_user_session
return @current_user_session if defined?(@current_user_session)
@current_user_session = UserSession.find
end
def current_user
return @current_user if defined?(@current_user)
@current_user = current_user_session && current_user_session.record
end
当用户登录时,闪回通知将返回'Login sucessful'
,但未设置current_user。我也尝试使用官方的authlogic插件,没有任何改变。我在这里错过了什么吗?
谢谢!
添
答案 0 :(得分:9)
我遇到了这个问题。出于某种原因,它干扰了基本的身份验证 - 修复它我将allow_http_basic_auth设置为false。
class UserSession < Authlogic::Session::Base
allow_http_basic_auth false
end