在新模型的發佈期間,我正在通過Authlogic檢查身份驗證。創建請求上有一個before_filter
。它正在調用require_user
。用戶會話成功創建後,將調用redirect_back_or_default(default)
方法。問題是,請求需要被髮布到存儲的uri。我試圖存儲該方法並將其輸入到redirect_to
,但它不起作用。有任何想法嗎?rails爲redirect_to指定方法
# called before successful authentication with before_filter
def require_user
unless current_user
store_location
flash[:notice] = "You must be logged in to access this page"
redirect_to new_user_session_url
return false
end
end
def store_location
session[:return_to] = request.request_uri
session[:return_to_method] = request.request_method
end
# called after successful authentication
def redirect_back_or_default(default)
redirect_to((session[:return_to] ? session[:return_to] : default), :method => session[:return_to_method])
session[:return_to] = nil
session[:return_to_method] = nil
end
感謝您的回答。我最終做的是爲模型添加授權狀態。我允許未經過登錄且初始狀態無效的未授權用戶創建。然後在創建操作中,如果它們未登錄,它將存儲show操作的路徑並重定向到登錄/新用戶頁面。如果他們沒有登錄,那麼模型將永遠不會被驗證,並且會在稍後的日期被收穫。如果他們進行登錄,他們將被重定向回顯示操作,如果該操作是由他們創建的並且他們是logged_in,那麼它將「授權」該模型。 – 2009-07-31 15:26:05