这只是今天一个接一个的问题。我刚刚部署到我的生产服务器并对其进行了测试,每当涉及电子邮件时都会出现问题。特别是使用 Devise 的可确认注册电子邮件,每当我注册帐户时,日志中都会抛出以下错误...
ActionView::Template::Error (You can no longer call ActionMailer::Base.default_url_options directly. You need to set config.action_mailer.default_url_options. If you are using ActionMailer standalone, you need to include the routing url_helpers directly.):
查看我的 config/environments/production.rb,我有以下设置...
config.action_mailer.default_url_options = { :host => 'localhost' }
所以 config.action_mailer.default_url_options正在使用,但被完全忽略。我尝试将主机更改为“127.0.0.1”和我的服务器的 IP 地址,但它没有。将它扔到 config/application.rb 中,但不行。我在我的项目中寻找任何其他声明 default_url_options 的行,但它只在 production.rb 文件中设置。我在 Google 上搜索并找到了一篇建议将 config.cache_classes 设置为 false 的帖子,但那里也为负数。
现在这很疯狂......每当我尝试在我的项目中提交全新的评论时,我都会遇到同样的错误(如果您是第一次评论者,请设置发送电子邮件以确认电子邮件地址)。我从 production.rb 文件中取出了 config.action_mailer...等,并且 viola - 我的评论邮件工作并发送了电子邮件就好了!
尽管如此,Devise 还是非常固执,不断向我抛出上述错误。关于为什么的任何想法?顺便说一句,我所有的宝石都是最新的。下面是我的 production.rb 文件。
---更新---------------
取得了一些进展,但这很奇怪。当我启动服务器并尝试发送邮件(用户注册、评论)时,我收到上面的 ActionMailer::Base 错误消息。当我再次尝试该操作时...它起作用并且邮件被发送。从那时起(直到乘客和/或服务器重新启动),所有邮件操作都可以正常工作。
但并非没有另一个问题(它永远不会结束)......由于某种原因,电子邮件正文完全空白。