缺少主机链接!请为Rails 4提供:host参数

时间:2016-03-21 13:09:22

标签: ruby-on-rails ruby ruby-on-rails-4 routes

  

缺少主机链接!请提供:host参数,设置   default_url_options [:host],或者set:only_path为true

我随机地随机获取此错误,通常重新启动服务器会将问题解决一段时间,然后再次显示。 我已经添加了 config.action_mailer.default_url_options = "localhost:3000",在development和test.rb文件中。

另外,我使用了include Rails.application.routes.url_helpers 在一个模块中访问路由,我读到这可能是我收到这些错误的原因但删除它会让我无法访问路由。
该模块用于数据表gem。

4 个答案:

答案 0 :(得分:23)

对于Rails 5,请使用:

Rails.application.routes.default_url_options[:host] = "XXX"

您可以将其放在config/environments/文件(或任何其他初始值设定项)中,例如在config/routes.rb的开头。

答案 1 :(得分:11)

你应该按照以下方式写作

For Development(development.rb)

config.action_mailer.default_url_options = { :host => "localhost:3000" }

在生产(production.rb)

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

答案 2 :(得分:6)

您已更新动作邮件的默认网址选项。 URL助手将从action_controller设置中选择。

config.action_controller.default_url_options = .....

BR

答案 3 :(得分:2)

我有类似的错误。问题在于您的配置。

尝试重写您的development.rb和test.rb的配置,如下所示:

config.action_mailer.default_url_options = { host: "localhost", port: 3000 }

同时检查您在production.rb中的配置是否正确写入:

config.action_mailer.default_url_options = { host: 'myherokuapp.herokuapp.com' }