Railsでデータを登録後にメールを送信ヘ(^o^)ノ
Railsでユーザ登録後にメール送信することはよくあります。
今日、その部分を見てて気になったのでメモ程度に
もともとはこんな感じのコードやった
# app/controllers/user.rb def create @user = Post.new(user_params) @user.save UserMailer.wellcome_email(@user).deliver respond_with(@user) end
別に問題ないのですが...
気になったのはココ⇒UserMailer.wellcome_email(@user).deliver
なので、リファクタリングしてみました。
# app/models/user.rb after_create :send_wellcome_email private def send_wellcome_email UserMailer.wellcome_email(self).deliver end
# app/controllers/user.rb def create @user = Post.new(user_params) @user.save respond_with(@user) end
callbackはコードの見通しを良くしてくれますね
メール送信をモデルのafter_createに書くか、コントローラーのaround_actionに書くか迷った
なんかメール送信をモデルに書くの違和感ある...( ̄▽ ̄;)
やっぱ、around_actionかなー
Happy Hacking٩( ‘ω’ )و