LoginSignup
5
5

More than 3 years have passed since last update.

RailsのURLヘルパーで生成されるURLのスキーマをhttpsにする方法

Posted at

超小ネタ。
RailsのURLヘルパーで生成されるURLは http ベースになってしまします。

Rails.application.routes.url_helpers.root_url
=> "http://localhost:3000/"

これを https ベースにするには protocol オプションの指定が必要になります。

Rails.application.routes.url_helpers.root_url(protocol: 'https')
=> "https://localhost:3000/"

毎回 protocol オプションを指定するのが面倒であれば、 default_url_options を設定することでデフォルトを変更できます。

Rails.application.routes.default_url_options[:protocol] = 'https'

ちなみに次期Railsでは Rails.application.config.force_ssltrue の場合は自動でデフォルトが https になるようになりました。
(PR) https://github.com/rails/rails/pull/37480

もはやhttps化は常識ですので今更感はありますが、次期Railsがリリースされるまでは config/initializers 以下に書いておくと良いでしょう。

config/initializers/protocol_default_to_https.rb
# force_ssl が true なら URL を https にする。
if Rails.application.config.force_ssl
  Rails.application.routes.default_url_options[:protocol] = 'https'
end
5
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
5