【发布时间】:2010-12-03 10:48:13
【问题描述】:
我的官方 authlogic 插件在 Rails 2.3.5 上完美运行。我将我的应用程序转换为 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' 的 flash 通知,但未设置 current_user。我也用官方的 authlogic 插件试过这个,没有任何改变。我在这里遗漏了什么吗?
谢谢!
提姆
【问题讨论】:
标签: ruby-on-rails ruby-on-rails-3 authlogic