这更像是一个概念性问题,因为我觉得我做错了:
我必须向一些满足某些条件的用户发送电子邮件。我现在拥有的是以下内容:
1)一个基本上做到这一点的任务:
users = User.includes(:aptitudes).where({:role => ['Boy','boy','kid'], :aptitudes => {:name =>'Good'} })
users.each do |user|
MyMailer.report(user).deliver
end
2)在MyMailer的report方法中,我有几件事:
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
发生的情况是,在 Mailer 本身中,有时 @user 对象的特定属性或属性不满足要发送的电子邮件。我想知道我应该在哪里确保我传递给邮件程序的所有用户都会收到一封电子邮件?我应该在 rake 中创建一个新方法来进行这些检查吗?或者你会怎么做?