2011-10-20 8 views
2

ApplicationControllerクラスからの要求を処理しようとしているコントローラを取得する方法はありますか?Rails 3.1のApplicationControllerから現在のコントローラオブジェクトを取得できますか?

基本的に私はHTTPSが必要なくなったときにHTTPに戻る方法を見つけようとしています。私は指示通りにSSLを使用するように工夫を設定している:

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

しかし、一度工夫コントローラは、それがそこに居たSSLにリダイレクトします。 Devise wikiには、Deviseアクションが完了するとHTTPにリダイレクトされるコードスニペットがありました。ただし、ユーザーが他の手段を使用して移動した場合は機能しません。

.NETの考え方からは、おそらくすべてのコントローラの基本クラス(ApplicationController)で何かできることがあります。 SSLを必要とするコントローラクラス名の配列を持つことができる場合は、現在のコントローラクラスがそれを必要としない場合はHTTPにリダイレクトします。私はRuby and Rails初心者ですから、これはまったく正しい方法を見ていないかもしれません...

ありがとう、 ダニー。

+1

を実行して、あなたが解決するためにどのような例がありますができますか?なぜあなたはそれが必要なのか分かりません。 – mliebelt

+0

私はさらに精巧に質問を編集しました – codedog

答えて

2

現在のコントローラ名は、paramsハッシュで表示されます。params[:controller]

0

またcontroller_name

[3] pry(#<PostsController>)> controller_name 
=> "posts" 
関連する問題