web-dev-qa-db-ja.com

ActionView :: Template :: Error:リンクするホストがありません! :Hostパラメータを指定するか、default_url_options [:Host]を設定するか、:only_pathをtrueに設定してください

私のRuby on Railsアクションメーラーは、開発環境ではすべて正常に動作しますが、本番環境ではスローし続けます。

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.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :port           => xxx,
  :address        => 'smtp.example.org',
  :user_name      => '[email protected]',
  :password       => 'xxxxxxxx',
  :domain         => 'xxxxxx.com',
  :authentication => :plain,
}

config.action_mailer.default_url_options = { :Host => 'localhost:3000' }

私の生産構成は

config.action_mailer.delivery_method = :smtp
config.action_mailer.smtp_settings = {
  :port           => 587,
  :address        => 'smtp.example.org',
  :user_name      => '[email protected]',
  :password       => 'xxxxxx',
  :domain         => 'example.com',
  :authentication => :plain,
}
config.action_mailer.default_url_options = { :Host => 'example.com' }

私の他の環境は:

Ruby 2.1.1
Rails 4.0.3
sidekiq 
devise
devise-async

私が試してみました:

  1. 初期化ファイルに以下を追加します

    ActionMailer::Base.default_url_options[:Host] = "example.com"
    
  2. この答え ここ

どちらも機能しません。

26
Chuanpin Zhu

最後に、各環境ファイルに正しい値で以下を追加しました。

test.rb/development.rb/production.rb

Devise 3.2.x-4.x.x

Rails 4.1.x&&Rails 4.2.x&&Rails 5.xx

おかげで maudulus

# Default Mailer Host
  Rails.application.routes.default_url_options[:Host] = 'domain.com'
77
blnc

サーバーを再起動してみてください。 Rails 4.1)でも、再起動しないと構成は再解析されません。

4
Camden Narzt