【问题标题】:"Missing host to link to! Please provide the :host parameter"... but I _did_ provide it“缺少要链接的主机!请提供 :host 参数”...但我_did_提供了它
【发布时间】:2015-08-26 16:33:27
【问题描述】:

我读过其他有同样问题的人的类似帖子,大多数人通过以下方式解决了这个问题:

config.action_mailer.default_url_options = { :host => '#.#.#.#'}

在他们的环境特定的配置文件中。我已经这样做了,我还重新启动了我的服务器。

这是我的秘密。当我尝试从我的应用程序发送一封包含链接的电子邮件时,我的帖子标题中出现错误(与许多其他人一样)。但是,这只是我的暂存环境(和 Engine Yard 实例)的问题。我的开发环境(我的本地机器)工作正常。

在这两种情况下,我都将操作邮件配置为具有上面的 default_url_option。对于我的开发环境,我的 :host 是 local:3000,对于我的暂存环境(Engine Yard),我的 :host 是一个 IP 地址。

我想确保我的暂存环境确实将首选项加载到 ActionMailer 中,所以我在暂存的 rails 控制台上运行了这个:

ActionMailer::Base.default_url_options

产生了:

{:host=>"[the staging ip address from the config file]"}

所以我知道它在里面!但我仍然收到“请提供 :host 参数”。

有什么想法吗?

【问题讨论】:

    标签: ruby-on-rails-4 actionmailer delayed-job


    【解决方案1】:

    这是我学到的:重新启动 服务器 与重新启动 Delayed Job 进程 不同,因此,任何新的配置设置都不适用于除非重新启动,否则延迟作业进程。

    在我使用以下命令手动重新启动暂存服务器上的延迟作业进程后:

    bin/delayed_job restart
    

    消息开始流入。

    快速提示:要强制重试队列中的失败消息,一次一条,运行:

    Delayed::Job.last.update_attributes(:attempts=>0, :run_at=>Time.now, :failed_at => nil, :locked_by=>nil, :locked_at=>nil)
    

    【讨论】:

      猜你喜欢
      • 2019-12-11
      • 2016-07-08
      • 2011-05-06
      • 2018-11-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-12-31
      • 2014-04-12
      相关资源
      最近更新 更多