私はこれを間違っていると感じているので、これは概念的な質問のようなものです。
いくつかの条件を満たす一部のユーザーにメールを送信する必要があります。私が今持っているのは次のとおりです。
1)基本的にこれを行うタスク:
users = User.includes(:aptitudes).where({:role => ['Boy','boy','kid'], :aptitudes => {:name =>'Good'} })
users.each do |user|
MyMailer.report(user).deliver
end
2)MyMailerのレポートメソッドには、いくつかのことがあります。
def report(user)
@user = user
@value = @user.value
@travels = @user.travels.where(:end_at)
@rewards = @user.rewards
# More logic depending of values of User.
...
end
何が起こるかというと、メーラー自体では、オブジェクト@userの特定のプロパティまたは属性が、送信される電子メールに対して満たされない場合があります。メーラーに渡すすべてのユーザーにメールが送信されるようにするには、どこにすればよいのでしょうか。これらのチェックを行うために、レーキに新しいメソッドを作成しますか?それともどうしますか?