Rails: uninitialized constant Mail::TestMailer


Ruby on Rails で uninitialized constant Mail::TestMailer というエラーが出ました。

環境

  • Ruby 2.0.0-p481
  • Rails 4.2.5

原因

app/models/mail.rbmodule Mail を定義していたのが原因でした。

bundle exec rails g model mail/something_mail というようにメールデータのモデルを作っていたので mail.rb が作成されていました。

解決した方法

mail.rb の内容を something_mail.rb に書き込み、 mail.rb を削除しました。

その他参考

mail.rb というファイルでクラスを定義している場合にも同じ現象が起きます。