【发布时间】:2010-01-14 07:56:24
【问题描述】:
我正在为 Ruby on Rails 使用 restful_authentication 插件。一切似乎都很好,只是似乎根本没有创建用户会话。我有下面的创建方法。似乎 self.current_user 正在设置,但实际会话从未创建。应该何时以及如何定义 current_user_session。我的应用程序控制器中有该方法,但这总是失败的地方。
def create
logout_keeping_session!
user = User.authenticate(params[:login], params[:password])
if user
# Protects against session fixation attacks, causes request forgery
# protection if user resubmits an earlier form using back
# button. Uncomment if you understand the tradeoffs.
# reset_session
self.current_user = user
new_cookie_flag = (params[:remember_me] == "1")
handle_remember_cookie! new_cookie_flag
redirect_back_or_default('/')
flash[:notice] = "Logged in successfully"
else
note_failed_signin
@login = params[:login]
@remember_me = params[:remember_me]
render :action => 'new'
end
结束
应用程序控制器
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.user
end
UserSession 模型为空
【问题讨论】:
标签: ruby-on-rails ruby authentication ruby-on-rails-plugins