【问题标题】:Rails Devise Error: Missing host to link toRails 设计错误:缺少要链接的主机
【发布时间】:2017-11-08 04:46:18
【问题描述】:

当我创建一个新用户(使用 Devise gem)并尝试获取确认电子邮件时,我在本地主机上的 rails 应用程序出现了非常奇怪的错误:

ArgumentError in Registrations#create
Showing     /Users/matthewvandenboogart/Sites/certlocal/app/views/devise/mailer/confirmation_instructions.html.erb where line #5 raised:

Missing host to link to! Please provide the :host parameter, set default_url_options[:host], or set :only_path to true

为了记录,其他电子邮件从本地主机发送正常。唯一似乎弹出此错误的电子邮件是初始确认电子邮件。最重要的是,当代码被推送到暂存(在 Heroku 上)时,我没有看到错误。

config/development.rb:

 config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }

任何人对可能发生的事情或在哪里寻找解决方案有见解?这是一个烦人的类型错误,我想解决它,所以有一天它不会在生产中发生。

【问题讨论】:

  • 基本问题,设置默认主机后重启了吗?
  • 尝试将您的 default_url_options 更改为 {host: 'localhost:3000'},它应该可以工作
  • 这个问题是答案,你可以通过链接here查看它
  • @Md.FarhanMemon - 是的 - 尝试了重置(尽管问起来很公平)
  • @OthmaneElKesri - 尝试将端口移动到本地主机的一部分 - 同样的错误。

标签: ruby-on-rails devise


【解决方案1】:

您说“其他电子邮件从 localhost 发送正常。唯一似乎弹出此错误的电子邮件是初始确认电子邮件”

嗯。我不确定你遇到了什么问题。但是如果除了第一封电子邮件之外,每封电子邮件都运行良好,那么我认为该电子邮件已被缓存。 尝试检查您的 development.rb 这一行

config.action_mailer.perform_caching = false

如果为真,则设置为假。

【讨论】:

  • 感谢您查看此@nvtin。我没有打开缓存。尝试将其设置为 false 会引发错误:undefined method perform_caching= for ActionMailer。看起来那是Rails 5的东西? (我使用的是 4.2.7.1)
猜你喜欢
  • 2019-07-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-08
  • 1970-01-01
  • 1970-01-01
  • 2019-12-11
相关资源
最近更新 更多