2011-10-20 44 views
2

有沒有什麼辦法可以讓我的控制器即將處理來自ApplicationController類的請求?我可以從Rails 3.1中的ApplicationController獲取當前控制器對象嗎?

基本上我試圖找出不再需要HTTPS時返回HTTP的方式。我已將Devise配置爲按照指示使用SSl:

#in config/environments/production.rb 
config.to_prepare { Devise::SessionsController.force_ssl } 
config.to_prepare { Devise::RegistrationsController.force_ssl } 

但是,一旦Devise控制器重定向到SSL,它就會停留在那裏。在Devise操作完成後,Devise wiki中有一段代碼重定向回HTTP。但是,如果用戶使用任何其他方式導航,這將不起作用。

從我的.NET思維方式,也許我可以在所有控制器的基類,即ApplicationController中做一些事情。如果我可以有一個需要SSL的控制器類名稱的數組,那麼如果當前的控制器類不需要它,那麼重定向到HTTP,或許這對於現在來說將是一個足夠簡單的解決方案?我是Ruby和Rails的新手,所以我可能根本沒有正確的看待這個...

謝謝, Dany。

+1

你有一個例子如何解決?我不明白你爲什麼需要這個。 – mliebelt

+0

我編輯了我的問題以進一步闡述 – codedog

回答

2

您可以在params哈希中看到當前控制器名稱:params[:controller]

0

您還可以運行controller_name

[3] pry(#<PostsController>)> controller_name 
=> "posts" 
相關問題