缺少要链接到的主机!请提供:主机参数或设置默认值_url_选项[:主机]

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (14)

现在我在RSpec规范中使用URL助手时会遇到这个错误,我不知道它在哪里期待违约_URL_待定的选项。

 Failure/Error: listing_url(listing).should match(/\/\d+-\w+$/)
 RuntimeError:
   Missing host to link to! Please provide :host parameter or set default_url_options[:host]
 # ./spec/routing/listing_routing_spec.rb:9:in `block (3 levels) in <top (required)>'

这段代码与电子邮件/ActionMailer无关,它只是碰巧需要一个URL而不是路径。

提问于
用户回答回答于

Your::Application.routes.draw do
    default_url_options :host => "example.com"

    # ... snip ...
end

(在常规程序中的某个地方,rb:)

用户回答回答于

需要在每个环境中添加以下行:

config.action_mailer.default_url_options = { :host => "yourhost" }

这样,它就可以在所有环境中工作,并且可以在不同的环境中不同。例如:

开发.rb

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

test.rb

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

生产.rb

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

扫码关注云+社区