0

皆様ご挨拶…

見たことのない、すべてのアカウントで発生するはずのない問題を理解しようとしています...

シンプル/標準のActionMailerセットアップでRails 3.0.12を使用しています:

  • app/mailers に HelpRequestMailer があります
  • app/controllers に HelpRequestsController があります

最初の問題...コントローラーでメーラーを呼び出すと...

help_request = HelpRequest.new(params[:help_request]) ... HelpRequestMailer.help_request_email(help_request).deliver

次のエラーが表示されます: NameError (初期化されていない定数 HelpRequestsController::HelpRequestMailer)

これ自体が不思議です。

以下を追加すると...

require File.expand_path('../../mailers/help_request_mailer', FILE )

...コントローラの先頭へ(パスは「../mailers/help_request_mailer」になると思いますが、それは機能しません)-これを行う必要はありません-コントローラはメーラーを見つけたようですが、それが何であるかを認識していないようです/それをどうするかを知りません。次のエラーが表示されます。

NoMethodError (HelpRequestMailer:Class の未定義メソッド「help_request_email」)

これは技術的に正しいです... HelpRequestMailerにはhelp_request_emailクラスメソッドはありません...これはインスタンスメソッドです(ドキュメントで指定されています)。

私の ActionMailer 設定は config/application.rb にあります

どんな助け/提案も大歓迎です...

4

1 に答える 1

0

私もこの問題を抱えていましたが、まったく役に立たないエラーメッセージの場合であることが判明しました. 私の場合は、アクション メーラーまたは関連付けられたビューの一部のコードの構文エラーにすぎませんでした。

Rails がメーラーを適切に解析できなかったり、コードを表示できなかったりしたときに、ファイルをバイパスしただけでアクション メーラー オブジェクトをインスタンス化しなかったため、コントローラーでエラーが発生したことが原因だと思います。

Rails がアクション メーラー コード自体のエラーでつまずいたとしたら、私はそれを望んでいたでしょう。

于 2014-02-17T21:39:30.623 に答える