我已经想出了如何以单一方式向用户发送电子邮件(有人输入他们的电子邮件地址,并且邮件模型使用friend.email(朋友是模型和电子邮件是该属性)向该人发送了一封电子邮件。 。邮寄多个用户
现在我试图发送电子邮件到几个用户,我开始写作的过程中我的用户模型如下图所示:
class User < ActiveRecord::Base
acts_as_authentic
def mail_out
weekday = Date.today.strftime(%A).downcase
@users = find(:conditions => "#{weekday}sub = t")
@users.each { |u| UserMailer.deliver_mail_out(u)}
end
end
我知道有可能是一个更好的方式来做到这一点,但每个用户在我的数据库中可以有t或f为mondaysub,tuesdaysub等。所以我想抛出所有用户的属性mondaysub设置为“t”到@monday变量(每周的每一天都是一样的)。现在我想检查一周中的哪一天,如果是星期一,则发送一封电子邮件给@monday变量中的每个用户。我已经使用每当如下:
every 1.day, :at => '5:30 am' do
runner "User.mail_out"
end
这将调用mail_out过程在我的模型,每天一次(我认为)。
现在我有我的邮件设置如下:
class UserMailer < ActionMailer::Base
def mail_out(users)
@recipients = { }
users.each do |user|
@recipients[user.email] = { :name => user.name }
end
from "[email protected]"
subject "Check out the trailer of the day!"
body :user => user
end
end
我的问题是,如何连接这些结合在一起,我希望我在正确的轨道上......所以我每天早上5希望:00,如果它是星期一,则mondaysub设置为“t”的每个用户将邮寄特定的用户制作模板。我开始非常困惑自己,任何帮助都会非常感激。你可以告诉我这是新的,但我一直在阅读大量的书籍/教程。
谢谢!
而不是一堆finder方法,为什么不只是有一个'find_subscription_by_day'方法,你过去的一天? – 2010-02-01 17:31:54