缺少要链接的主机!请为 Rails 4 提供 :host 参数
Posted
技术标签:
【中文标题】缺少要链接的主机!请为 Rails 4 提供 :host 参数【英文标题】:Missing host to link to! Please provide the :host parameter, for Rails 4 【发布时间】:2016-07-08 00:21:21 【问题描述】:缺少要链接的主机!请提供 :host 参数,设置 default_url_options[:host],或者设置 :only_path 为 true
我偶尔会出现这个错误,一般重启服务器会解决一段时间,然后又会出现。
我已经添加了
config.action_mailer.default_url_options = "localhost:3000"
,在 development 和 test.rb 文件中。
另外,我用过include Rails.application.routes.url_helpers
在一个访问路线的模块中,我读到这可能是我收到这些错误的原因,但删除它会使我无法访问路线。
该模块适用于数据表 gem。
【问题讨论】:
你最后做了什么@raunak Joneja? Missing host to link to! Please provide :host parameter or set default_url_options[:host]的可能重复 【参考方案1】:对于 Rails 5,使用:
Rails.application.routes.default_url_options[:host] = "XXX"
您可以将其放入 config/environments/
文件(或任何其他初始化程序)中,或者例如在config/routes.rb
的开头。
【讨论】:
你会在哪里添加它?在config/environments/<env>.rb
?
您可以在任何您认为合适的地方使用它。它可以是环境文件。通常,我最终得到相同的语句(从环境变量中读取主机值),因此,我将这一行放在 routes.rb
的顶部,因为它是定义/设置 Rails.application.routes
的文件。【参考方案2】:
你应该这样写
用于开发(development.rb)
config.action_mailer.default_url_options = :host => "localhost:3000"
生产中 (production.rb)
config.action_mailer.default_url_options = :host => "myproductionsite.com"
【讨论】:
没用,将 action_mailer 更改为控制器,将值设为哈希,检查我的 heroku 控制台,同样的错误:'ActionView::Template::Error (缺少要链接的主机!请提供:host 参数,设置 default_url_options[:host],或者设置 :only_path 为 true):' prod host: :host => "myherokuapp.herokuapp.com" 为什么要更改 action_controller ?【参考方案3】:我遇到了类似的错误。问题出在您的配置中。
尝试为你的 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'
【讨论】:
【参考方案4】:您已更新操作邮件程序的默认 url 选项。 URL 助手将采用 action_controller 设置中的选项。
config.action_controller.default_url_options = .....
BR
【讨论】:
另外,url options 是一个哈希,而不是一个字符串。 没用,将 action_mailer 更改为控制器,将值设为哈希,检查我的 heroku 控制台,同样的错误:'ActionView::Template::Error (缺少要链接的主机!请提供:host 参数,设置 default_url_options[:host],或设置 :only_path 为 true):' prod host: :host => "myherokuapp.herokuapp.com"以上是关于缺少要链接的主机!请为 Rails 4 提供 :host 参数的主要内容,如果未能解决你的问题,请参考以下文章
缺少要链接的主机!请提供 :host 参数,设置 default_url_options[:host]
将 Rails 应用程序推送到 Heroku 时缺少“sqlite3.h”
如何解决错误“‘生产’环境缺少‘secret_key_base’”(Rails 4.1)