2

どちらが好ましいでしょうか?

class Mailer < ActionMailer::Base

  # this?
  def bid_end_notify_failed_bidders(job)
    @job = job
    bidders = @job.bidders
    bidders.delete(@job.winner)
    bidders.each do |t|
      mail(:to => t.email, ....)
    end
  end

  # or this?
  def notify_failed_bid(bidder)
    mail(:to => bidder ...)
  end


end
4

1 に答える 1

0

方法 2 をお勧めします。これは、電子メールの送信方法を機敏にしたいためです。

それを使用する最も一般的な方法は次のとおりです。

  • インスタンスを宣言する
  • インスタンスから必要な関係を宣言します
  • インスタンスを Mailer::Base メソッドに渡します
  • 配達

例:

ユーザー = User.first

bets_won = user.bets_won

Mailer.send_congrats(users, bets_won).deliver!

現在は提供されているデータのみを使用するため、Mailer クラスでロジックを実行する必要はありません。このアプローチにより、メソッドを簡単に再利用できます。

于 2013-02-19T15:52:08.117 に答える