2012-08-17 80 views
0

我知道这已被看到很多次,但我不明白我做错了什么。我试图通过rake任务发送邮件,并且我得到了这个错误通过rake任务发送邮件:缺少主机链接到

没有主机链接到!在staging环境(托管在Heroku)only_path真

:请提供:主机参数,设置default_url_options [:主机],或设置。有什么困扰我的是,当我启动一个控制台时,我可以毫无麻烦地发送邮件。在开发过程中,我无需通过rake任务直接发送邮件。

您可以在this gist中看到环境文件,邮件程序类和rake任务。我真的不明白我在这里做错了什么。

非常感谢您的时间!

回答

0

当我得到这个时,我必须把:host的值放在production.rb的App :: Application.configure块中。

我不知道这是否可以转化为heroku。

在production.rb,加配置块内的以下内容:

config.action_mailer.default_url_options = { 
    :host => "your-domain.com" 
    } 

如果这必须是变量(Heroku的),你很可能在这里使用的环境变量。

+0

这就是我为'staging'环境所做的 – ksol 2012-08-17 07:56:18

+0

您是否有可能在暂存环境中运行rake任务? – seanyboy 2012-08-17 07:58:16

+0

根据'heroku config','RACK_ENV'&'RAILS_ENV'都被设置为'staging'。我用'heroku run RAILS_ENV =登台耙邮件:congrats --trace'自己跑耙子任务,但不幸运。 – ksol 2012-08-17 08:00:42

0

作为解决方法,我在每个使用url_for的方法中指定主机。幸运的是,只有两个电话,但如果有人知道更好,我想知道答案。