对rails中的特定控制器跳过/禁用force_ssl

时间:2015-07-15 05:13:27

标签: ruby-on-rails ruby ruby-on-rails-4 ssl

我需要在我的应用程序中的所有路径上强制使用SSL,但message#new控制器除外。

config/environments/production.rb中,我有:

config.force_ssl = true

现在所有路由都重定向到https,现在我想禁用message#new控制器。

有人知道如何在Rails 4+应用程序中禁用特定控制器的强制SSL吗?

3 个答案:

答案 0 :(得分:15)

根据documentation以下内容应该有效(但仅适用于rails> 5版本):

config.ssl_options = {
  redirect: {
    exclude: -> request { request.path =~ /healthcheck/ }
  }
}

答案 1 :(得分:5)

skip_before_action :verify_authenticity_token
force_ssl except: [:index,:create]

它为我工作。

答案 2 :(得分:-2)

MessagesController.rb -

中执行此操作
  force_ssl except: [:new]