2013-01-15 33 views
0

在我的應用程序控制器我有制定返回URL

class ApplicationController < ActionController::Base 
    protect_from_forgery 
    before_filter :save_location 
    def save_location 
    session[:user_return_to] = request.url unless request.url =~ %r{/} 
    end 
end 

...節省了位置,所以當用戶登錄時,它返回到該網址。用戶註銷時可以做同樣的事情嗎?

回答

0

您可以定義設計的內置after_sign_out_path_for方法在你的ApplicationController,因爲在他們的維基解釋說:https://github.com/plataformatec/devise/wiki/How-To:-Change-the-redirect-path-after-destroying-a-session-i.e.-signing-out

+0

這是偉大的。我應該將before_filter和save_location設置爲private,與Devise的** after_sign_out_path_for **相同​​嗎? – user1975031

+0

這是一個很好的做法,保持控制器方法不是動作(意思是沒有URL會解決它)在私人,所以只讓你的方法私人,離開before_filter調用它;) – pedromtavares

+0

啊,是的。我嘗試使用'session [:user_return_to] = request.url,除非request_url =〜%r {/}'用於'def after_sign_out_path_for',但它返回一個錯誤。有沒有更簡單的方法來返回之前的網址? – user1975031