ruby-on-rails - 当需要应用于整个应用程序时,如何在每个 Controller 中不重复 `before_filter` 代码?

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

我想在生产中将所有站点流量从所有 Controller 重定向到 https。可能使用如下内容:

before_filter :redirect_to_https

在 Controller 中使用以下内容:

  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

与必须在每个 Controller 中重复此操作相比,将此应用到所有 Controller 的最有效方法是什么?

最佳答案

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

如果你想要一个 before_filter 应用到所有的 Controller ,它们都继承自 ApplicationController 所以把它放在那里。

关于ruby-on-rails - 当需要应用于整个应用程序时,如何在每个 Controller 中不重复 `before_filter` 代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10058444/

相关文章:

ruby-on-rails - rails - 不区分大小写的搜索条件

ruby-on-rails-3 - 更改 config.assets.version 号有什么作用?

ruby-on-rails - Rails 中 Omniauth 到 Google 的配置设置

ruby-on-rails - 非 CRUD Controller 操作

mysql - LOAD DATA LOCAL INFILE 导致 mysql2 gem 出现 Malformed packet error

ruby-on-rails - rails : has_many association with self through another table

ruby-on-rails - 在 rails 应用程序中安装 Sinatra 应用程序并共享布局

javascript - 插入 div 时运行脚本

database - 创建一个 Ruby gem 以从多个 Rails 应用程序访问第二个数据库

ruby-on-rails - 如何在模型中调试?