Ruby on rails 我可以从Rails 3.1中的ApplicationController获取当前控制器对象吗?

Ruby on rails 我可以从Rails 3.1中的ApplicationController获取当前控制器对象吗?,ruby-on-rails,ruby-on-rails-3.1,Ruby On Rails,Ruby On Rails 3.1,是否有任何方法可以获取将要处理来自ApplicationController类的请求的控制器 基本上,我正在试图找到一种在不再需要HTTPS时返回HTTP的方法。我已按照说明将Desive配置为使用SSl: #in config/environments/production.rb config.to_prepare { Devise::SessionsController.force_ssl } config.to_prepare { Devise::RegistrationsControll

是否有任何方法可以获取将要处理来自ApplicationController类的请求的控制器

基本上,我正在试图找到一种在不再需要HTTPS时返回HTTP的方法。我已按照说明将Desive配置为使用SSl:

#in config/environments/production.rb
config.to_prepare { Devise::SessionsController.force_ssl }
config.to_prepare { Devise::RegistrationsController.force_ssl }
然而,一旦Desive控制器重定向到SSL,它就会留在那里。Desive wiki中有一个代码片段,一旦Desive操作完成,它就会重定向回HTTP。然而,若用户使用任何其他方式导航,那个么这将不起作用

从我的.NET思考方式来看,也许我可以在所有控制器的基类中做一些事情,即ApplicationController。如果我可以有一个需要SSL的控制器类名数组,那么如果当前的控制器类不需要它,就重定向到HTTP,也许现在这将是一个足够粗糙的解决方案?我是一个Ruby和Rails的新手,所以我可能根本没有正确地看待这个问题

谢谢,
Dany.

您可以在
params
散列中看到当前控制器名称:
params[:controller]
您还可以运行
controller\u name

[3] pry(#<PostsController>)> controller_name
=> "posts"
[3]撬(#)>控制器名称
=>“职位”

您有解决问题的示例吗?我不明白你为什么需要这个。我已经编辑了我的问题以进一步阐述