1

アプリケーションのメーラーで名前付きルートを使用すると、次のエラーが発生します。

ArgumentError: Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

これは常に発生しているわけではなく、開発モードでも本番モードでもローカルで再現できません。

本番環境でコンソールを開くと、デフォルトのホストが構成されていることを確認できます。

ActionMailer::Base.default_url_options
 => {:host=>"thehost.com"} 
Rails.application.config.action_mailer.default_url_options
 => {:host=>"thehost.com"} 
Spree::Core::Engine.config.action_mailer.default_url_options
 => {:host=>"thehost.com"} 

すべての名前付きルートは、Spree のルーティング プロキシを介して呼び出されます。

<%= spree.my_route_url %>

config/environments/production.rb に以下があります

config.action_mailer.default_url_options = { :host => "thehost.com" }

Spree も :site_url 設定 (私は正しく設定しました) から設定するため、これは冗長である可能性があります。

ActionMailer::Base.default_url_options[:host] = Spree::Config[:site_url]

(mail_settings.rbより)

Spree はバージョン 1-0-stable Rails 3.1.3 Ruby 1.9.3 です。

4

0 に答える 0