レール内の特定のコントローラーのforce_sslをスキップ/無効にする

概要

message#new コントローラーを除く、アプリケーション内のすべてのルートで SSL を強制する必要があります。

config/environments/production.rb には次のものがあります。

config.force_ssl = true

すべてのルートが https にリダイレクトされるようになりました。そして、message#new コントローラーに対してそれを無効にしたいと思います。

Rails 4以降のアプリケーションで特定のコントローラーの強制SSLを無効にする方法を知っている人はいますか?

解決策

ドキュメントによると、次のように動作するはずです(ただし、バージョン 5 より大きい Rails の場合に限ります)。

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