即使配置了默认主机,邮件程序模板中的命名路由也会引发丢失:主机选项

时间:2012-08-15 12:32:19

标签: ruby-on-rails routes actionmailer spree

在我的任何应用程序的邮件程序中使用命名路由会引发此错误:

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)

施普雷版本1-0稳定 Rails 3.1.3 Ruby 1.9.3

0 个答案:

没有答案