缺少要链接到的主机!请提供:host参数,设置default_url_options[:host]。

5

尝试在开发环境下预览我的邮件发送器,但是遇到了上述错误。(使用Michael Hartl的教程)

我认为这是由于我的主机导致的。但是,在使用cloud 9时,我很难找到我的主机。在书中,它被定义为host ='rails-tutorial-mhartl.c9users.io'适用于Cloud IDE,但这对于书的作者来说是独特的。

我尝试使用localhost,但没有成功,如果这相关,我的开发URL与书中的不同: "..0.vfs.cloud9.us-east-2.amazonaws.com/"

本质上,如果我可以找到我的独特的Cloud IDE主机,该问题就应该得到解决,但我不知道在哪里找到它

development.rb

config.action_mailer.raise_delivery_errors = true  
config.action_mailer.delivery_method = :test  
host = 'localhost:8080' 
config.action_mailer.default_url_options = { host: host, protocol: 'http' }

account_activation.html.erb

<h1>Sample App</h1>
<p>Hi <%= @user.name %>,</p>

<p>
  Welcome to the Sample App! Click on the link below to activate your account:
</p>

<%= link_to "Activate", edit_account_activation_url(@user.activation_token,
                                                email: @user.email) %>

页面应该加载电子邮件预览,但完整的错误消息是:

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

1个回答

4
如果您使用的是Rails 5,请尝试以下操作: Rails.application.routes.default_url_options[:host] = "XXX" 在Rails 4中找到了一个关于此问题的帖子,并且在Rails存储库的GitHub讨论中也有类似的讨论。

哇,太棒了!不确定它是如何工作的,但它确实起作用了 - 谢谢。 - marca
1
不用担心。我按照您说的做了,上述内容使用了"XXX",但现在我已经更新了:host以匹配根URL - 谢谢,我将来还会查看链接以获得更多理解。 - marca
1
只需将“XXX”更改为您的根URL,它就可以工作。谢谢。 - Fazal Karim

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接