2011-12-28 63 views
0

我有一個嵌套資源的應用程序。我的航線有:使用rails嵌套設計重定向

resources :teams do 
    resources :blogs 
end 

在我的博客控制器,IM不同的佈局,加入

layout "teamlayout" 

到控制器。 佈局,application.html.erb和teamlayout.html.erb都包含登錄表單本身。我通過這個工作:https://github.com/plataformatec/devise/wiki/How-To:-Display-a-custom-sign_in-form-anywhere-in-your-app

現在我的問題。當用戶登錄時,我希望他重定向到的頁面從他在登錄

回答

0

你有幾個選擇:

包括登錄表單中描述的登錄源(一個隱藏字段值例如hidden_field_tag(:login_source, "team")),併爲SessionsController#create定義自己的邏輯,它使用隱藏字段值來確定response_with的位置。

或者,你可以通過執行類似

def store_location 
    session['saved_location'] = request.request_uri 
end 

然後通過與登錄表單控制器使用的before_filter跟蹤用戶的位置,可以覆蓋after_sign_in_path_for(資源)方法在應用程序控制器使用session saved_location值來確定重定向的位置。

第二種方法似乎對我的Devise基礎設施的侵入性稍差,但靈活性稍差。

+0

thx!幫助過我 :) – malice 2012-01-06 17:57:28