2009-12-29 30 views
2

我有一個紅寶石的Rails應用程序,它有一個註冊頁面。不同的頁面重定向到註冊頁面,並且在註冊完成後需要設置另一頁面以重定向到。做這個的最好方式是什麼?目前,我正在這樣做:如何在紅寶石軌道上提交註冊頁面後重定向到哪裏?

的link_to「/註冊重定向= /胡說/頁6

...並獲得在註冊控制器重定向變量,並使用該設置後註冊頁面。我擔心這可能會導致一些安全問題,但我並不確定。

這是可以接受的還是有更好的方法?

回答

5

我使用這2種方法來幫助這在我application_controller.rb

def store_location 
    session[:return_to] = params[:redirect] 
end 

def redirect_back_or_default(default) 
    redirect_to(session[:return_to] || default) 
    session[:return_to] = nil 
end 

當他們到達註冊頁面,只需運行store_location,當它完成和完成後,使用redirect_back_or_default方法。

(當然修改這個根據自己的喜好)

1

你有沒有用於身份驗證的插件/寶石?如果你沒有,我建議清除或設計。許可將你自動地重定向到「你從哪裏來」,並且兩者都像開發人員一樣安全,並且使用它們已經讓它成爲(這意味着相當安全)。

現在我更喜歡Devise說了這一切。

Garrett的解決方案看起來像來自Restful身份驗證,這是另一個好的身份驗證插件。

+0

是的,我正在使用寧靜的身份驗證 – NotDan 2009-12-29 00:22:55

+0

最有可能的是,這只是我已經收集到我現在非常強大的'application_controller.rb'中的一段代碼,我發現它很有用。雖然我在Authlogic中使用了這個,但是使用'before_filter'會自動爲我啓動。 – Garrett 2009-12-29 00:24:18