我一直在敲我的頭這一個,現在一兩天:回報率:AuthenticatedSystem無法正常重定向回野生動物園
我使用AuthenticatedSystem要求對某些資源的認證得到了回報率的應用程序。 before_filter檢查用戶是否已登錄。如果不是,則抓取request.request_uri並將其放入會話變量(session [:return_to])中,然後通過302重定向消息將用戶發送到登錄頁面。然後登錄後,用戶被重定向回session [:return_to]中的url。
這在IE和Firefox中很適用。在Safari中,初始的before_filter上的request.request_uri爲空,會話控制器總是重定向到主頁面。
有沒有人遇到過這個?我唯一的線索是Safari的Web Inspector甚至不會顯示初始頁面的請求,只顯示登錄請求。在Firefox中,我看到了這兩個請求。
這裏的的before_filter:
def login_required
if !authorized?
session[:return_to] = request.request_uri
redirect_to new_session_path
end
end
這裏的會話/創建:
def create
self.current_user = User.authenticate(params[:login], params[:password])
if logged_in?
if params[:remember_me] == "1"
current_user.remember_me unless current_user.remember_token?
cookies[:auth_token] = { :value => self.current_user.remember_token , :expires => self.current_user.remember_token_expires_at }
end
redirect_back_or_default('/')
flash[:notice] = "Logged in successfully"
else
flash.now[:error] = "Authentication failed."
render :action => 'new'
end
end
任何想法?