Rails Missing host to link to!エラー

Railsで「Missing host to link to!」エラー

Ruby on Railsで発生する「Missing host to link to!」エラーの対処方法を解説します。

Shou Arisaka
1 分で読める
2018年10月24日

Ruby on Rails、特にRails 5を使用している際に、「Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true」といったエラーが発生することがあります。このエラーに対処する方法についてのメモを以下にまとめました。

エラーの原因

このエラーは、URLを生成する際にホスト名が指定されていない場合に発生します。たとえば、メール内のリンクを生成する際に、ホスト名が設定されていないと、Railsはどのホスト名を使用するべきか分からず、このエラーメッセージを表示します。

対処方法

  1. :hostパラメータを提供する

    URLを生成する際に、:hostパラメータを明示的に指定します。

    link_to 'Example', example_path(host: 'www.example.com')
  2. default_url_options[:host]を設定する

    Railsアプリケーション全体で使用するデフォルトのホスト名を設定します。通常、config/environments/development.rbconfig/environments/production.rbに設定します。

    Rails.application.routes.default_url_options[:host] = 'www.example.com'
  3. :only_pathをtrueに設定する

    パスのみを生成し、ホスト名を含まないように設定します。

    link_to 'Example', example_path(only_path: true)

詳細については、Stack Overflowの関連スレッドも参照してください。

この記事をシェア

Shou Arisaka 2018年10月24日

🔗 リンクをコピー