QA@IT

ActionMailerをDRYにするには?

1252 PV

ActionMailerでメールを送るとき、多くの場合にはログインユーザに対して送ることになると思うのですが、

def confirm(user)
  @user = user
  mail to: @user.email, subject: 'Confirm your account'
end

のような感じで、userを引数として受けて、さらにそれをインスタンス変数に入れて、それをビューで使うという感じで、メールの種類や引数が増えてくると、引数をインスタンス変数に詰め直すだけの本質的でないコードがどんどん増えてすっきりしません。

かといって、コントローラでcurrent_userをスレッドローカル変数に入れてしまうというのも、なんとなく大げさでしっくりこない感じがします。

この繰り返しをなくすために、なにか、工夫されていることはあるでしょうか?あれば参考にさせてください。

ウォッチ

この質問への回答やコメントをメールでお知らせします。