今日は次々と問題になっています。実稼働サーバーにデプロイしてテストしましたが、メールに関係するものがあると問題が発生します。特に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 / environment / 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ファイルでのみ設定されています。私はグーグルで検索し、config.cache_classesをfalseに設定することを提案する投稿を見つけましたが、そこでも否定的です。
これがおかしなことです...プロジェクトで新しいコメントを送信しようとすると、同じエラーが発生します(初めてコメントする場合は、メールアドレスを確認するためにメールを送信するように設定します)。私はproduction.rbファイルからconfig.action_mailer...etcを取り出し、ビオラ-私のコメントメーラーは機能し、メールをうまく送信しました!
それでも、Deviseは絶対に頑固で、上記のエラーを私に投げ続けています。理由について何かアイデアはありますか?ところで、私の宝石はすべて最新です。以下は私のproduction.rbファイルです。
---更新---------------
少し進歩しましたが、これは奇妙なことです。サーバーを起動してメールを送信する何か(ユーザー登録、コメント)を実行しようとすると、上記のActionMailer::Baseエラーメッセージが表示されます。アクションをもう一度試してみると...それは機能し、メールが送信されます。その時点から(乗客および/またはサーバーが再起動されるまで)、すべてのメーラーアクションは正常に機能します。
しかし、まだ別の問題がないわけではありません(それは決して終わらない)...何らかの理由で、電子メールの本文は完全に空白です。