ActionMailer基礎とヘルパーの指定

コードリーディングの際にActionMailerに触れたので、覚え書き。

  • ActionMailer基礎
class HogeMailer < ActionMailer::Base
  def fuga()
    …
  end

  def piyo()
  …
  end
end
    • メールテンプレート
      app/views/hoge_mailer/fuga.rhtml, piyo.rhtml
    • メールオブジェクトの作成
      HogeMailer.create_fuga()
    • メールオブジェクトの作成+送信
      HogeMailer.deliver_piyo()
  • メールテンプレートで自作ヘルパーを使用する
    メールテンプレート内で自作ヘルパーメソッドを使おうとしたところ、NoMethodErrorが出ました。
    ビューの呼び出しにコントローラを経由していないからでしょうか。
    メーラクラスでヘルパーを指定してあげたら、使えるようになりました。
class HogeMailer < ActionMailer::Base
  helper ApplicationHelper

  def fuga()
    …
  end

  def piyo()
  …
  end
end