web-dev-qa-db-ja.com

ActionView :: Template :: Error:リンクするホストがありません

タイトルが示すように、メーラーテンプレートでlink_toを使用しようとすると、次のエラーが発生します。

ActionView::Template::Error: Missing Host to link to! Please provide the :Host parameter, set default_url_options[:Host], or set :only_path to true

指示に従おうとすると、 この投稿 も見つかりましたが、それでもエラーが発生します。

次の各ファイルにconfig.action_mailer.default_url_options = { Host: 'example.com' }を追加しようとしましたが、どれも機能しませんでした。

/config/environment.rb
/config/application.rb (inside the module for my app)
/config/development.rb (I'm in development mode)

Rails 4で、これが異なる動作をする何かが変更されましたか?

22
emersonthis

私は先日この問題に遭遇しました、そしてこれは私のために働いてしまったものです:

Rails.application.routes.default_url_options[:Host] = '???'

編集

これは各環境ファイルに含まれます-development.rbtest.rbおよびproduction.rb(およびそれらがある場合はそれ以上)それぞれに対応するホスト名

37
dax

各環境(開発、テスト、本番)でdefault_urlを設定する必要があります。

これらの変更を行う必要があります。

    config/environments/development.rb
     config.action_mailer.default_url_options = 
      { :Host => 'your-Host-name' }  #if it is local then 'localhost:3000'

 config/environments/test.rb
      config.action_mailer.default_url_options = 
      { :Host => 'your-Host-name' }  #if it is local then 'localhost:3000'

  config/environments/development.rb
     config.action_mailer.default_url_options = 
      { :Host => 'your-Host-name' }  #if it is local then 'localhost:3000'
11