Ruby on rails Rails设计错误:缺少要链接到的主机

Ruby on rails Rails设计错误:缺少要链接到的主机,ruby-on-rails,devise,Ruby On Rails,Devise,当我创建一个新用户(使用Desive gem)并尝试获取确认电子邮件时,在localhost上点击我的rails应用程序时出现了一个非常奇怪的错误: ArgumentError in Registrations#create Showing /Users/matthewvandenboogart/Sites/certlocal/app/views/devise/mailer/confirmation_instructions.html.erb where line #5 raised:

当我创建一个新用户(使用Desive gem)并尝试获取确认电子邮件时,在localhost上点击我的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
记录在案的是,其他电子邮件都是从localhost发送的。唯一出现此错误的电子邮件是初始确认电子邮件。最重要的是,当代码被推到登台(在Heroku上)时,我没有看到错误

config/development.rb:

 config.action_mailer.default_url_options = { host: 'localhost', port: 3000 }
有人对可能发生的事情或解决问题的途径有见解吗?这是一个恼人的类型错误,我想解决它,这样总有一天它不会在生产中发生

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

嗯,我不知道你遇到了什么问题。但是如果除了第一封邮件外,其他邮件都能正常工作,那么我认为那封邮件是缓存的。 试着检查你的发展。rb这一行

config.action\u mailer.perform\u caching=false


如果为真,则将其设置为假。

基本问题,您在设置默认主机后是否重新启动?尝试将默认的url选项更改为{host:'localhost:3000'},应该可以工作此问题的答案是,您可以通过以下链接进行检查:@Md.FarhanMemon-yup-尝试重置(尽管要求公平)@OthmaneElKesri-尝试将端口移动到localhost的一部分-相同的错误。感谢您查看此@nvtin。我没有打开缓存。尝试将其设置为false会引发错误:
未定义的方法perform\u caching=for ActionMailer
。看起来这是Rails 5的事?(我使用的是4.2.7.1)