2012-01-17 4 views
4

私は、Heroku上のrails 3.1アプリケーションのステージングインスタンスをセットアップしました。送信しようとすると奇妙なエラーが発生する電子メール。私は電子メール配送のためにsendgridスターターアドオンを使用しています。完全なエラーは以下の通りです:NoMethodError:配信時に呼び出された 'index'メーラmailer

NoMethodError: undefined method `index' for #<Mail::Message:0x000000048daf28> 
    /app/.bundle/gems/ruby/1.9.1/gems/mail-2.3.0/lib/mail/message.rb:1289:in `method_missing' 
    /app/.bundle/gems/ruby/1.9.1/gems/mail-2.3.0/lib/mail/encodings.rb:117:in `value_decode' 
    /app/.bundle/gems/ruby/1.9.1/gems/mail-2.3.0/lib/mail/encodings.rb:101:in `decode_encode' 
    /app/.bundle/gems/ruby/1.9.1/gems/mail-2.3.0/lib/mail/fields/unstructured_field.rb:74:in `do_decode' 

私はちょうどそれを提供し、すべてが罰金だ、それを検査呼び出さずにメッセージオブジェクトを生成します。私は私のプロダクションアプリでこのエラーが表示されません。このエラーの意味と解決方法を教えてください。ありがとう。

答えて

11

Rails 3.0.11を使用しているローカルマシンで同じエラーが発生しました。私は文字列の代わりにいくつかのオブジェクトをmail:to属性に渡した後に起こった。したがって、:to属性が文字列であることを確認してください!

mail(to: object.to_s) 
1

今週末、Mail、Mail 2.4.0の新バージョンがリリースされました。この最新バージョンにアップグレードし、問題が修正されているかどうかを確認することをおすすめします。

+0

提案をいただきありがとうございます。 ActionMailerの依存関係が現在2.3.0に設定されているため、これを行うための最良の方法をお勧めしますか?私は2.4.0にアップグレードするためにRailsのエッジにコミットされたことを知っていますが、他の宝石の依存関係のためにエッジを使うことはできません。 – tks

1

このエラーは、私が作成したのだメールヘルパーを定義するとき、クラスの代わりに、モジュールを使用しての結果でした。

0

このエラーは、カスタムヘッダーを整数値に設定していたために発生しました。これらの値にto_sを使用すると、私の問題が解決しました。

0

私は同様の問題がありました。しかし、私が受け取ったエラー:

mail(to: emails,....) 

そして、私の変数「電子メール」が代わりに電子メールの1つの文字列であることの、実際に配列した:

NoMethodError (undefined method `ascii_only?' for nil:NilClass) 

私の問題は、私が持っていました。

関連する問題