我是Michael Hartl的(精彩的)Rails教程的完整noob,並且在Ch.10.2.3中有一個友好的重定向問題。目的是嘗試存儲位置,重定向到登錄頁面,然後在登錄完成後重定向回原始的預定目標。我的問題是,它只是在登錄/創建會話後呈現標準用戶配置文件頁面,而不是重定向。Rails重定向問題 - Hartl的Rails教程10.2.3
我有這樣的sessions_controller:
def create
user = User.authenticate(params[:session][:email],
params[:session][:password])
if user.nil?
flash.now[:error] = "Invalid email/password combination."
@title = "Sign in"
render 'new'
else
sign_in user
redirect_back_or user
end
end
而這sessions_helper:
def authenticate
deny_access unless signed_in?
end
def deny_access
store_location
redirect_to signin_path, :notice => "Please sign in to access this page."
end
def redirect_back_or(default)
redirect_to(session[:return_to] || default)
clear_return_to
end
private
def store_location
session[:return_to] = request.fullpath
end
def clear_return_to
session[:return_to] = nil
end
我敢肯定,我再一次犯了一個愚蠢,簡單的錯誤,但我不能找到它..幫助?
你試過'session [:return_to] = request.request_uri'嗎?它已經有一段時間了,所以我不記得request.fullpath是否會有一些你可以'redirect_to'。它可能會做,但認爲這將是一件容易的事,你可以檢查。 – sorens 2011-03-03 16:21:14
我有,但從其他意見,我認爲request_uri已被棄用Rails 3.0。 – GroundskeeperWillie 2011-03-03 22:34:37
很難不擁有所有的代碼,但有一點需要檢查:確保方法'store_location'實際上在登錄過程中被調用。 – 2011-03-04 01:42:06