当需要应用于整个应用程序时,如何在每个控制器中不重复`before_filter`代码?

时间:2012-04-07 21:13:37

标签: ruby-on-rails ruby-on-rails-3

我想在生产过程中将所有控制器的所有网站流量重定向到https。可能使用以下内容:

before_filter :redirect_to_https

控制器中包含以下内容:

  def redirect_to_https
    redirect_to :protocol => "https://" unless (request.ssl? || local_request? || Rails.env.development? || Rails.env.staging? ) # probably don't need redundant development with `local_request` present
  end

将此应用于所有控制器与在每个控制器中重复此操作的最有效方法是什么?

1 个答案:

答案 0 :(得分:4)

在environment / production.rb配置文件中使用config.force_ssl = true

如果你想要一个before_filter应用于所有控制器,它们都从ApplicationController继承,所以把它放在那里。