【问题标题】:Missing host to link to! Please provide the :host parameter, for Rails 4缺少要链接的主机!请为 Rails 4 提供 :host 参数
【发布时间】: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。

【问题讨论】:

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


【解决方案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" }
    猜你喜欢
    • 2019-12-11
    • 2018-11-08
    • 1970-01-01
    • 1970-01-01
    • 2011-05-06
    • 1970-01-01
    • 1970-01-01
    • 2017-12-31
    • 2014-04-12
    相关资源
    最近更新 更多