Я уже выяснил, как отправлять электронные письма пользователям в отдельности (кто-то вводит их адрес электронной почты, и модель почтовой программы отправляет этому человеку электронное письмо, используя friend.email (друг - модель, а электронная почта - атрибут).
Сейчас я пытаюсь отправить электронное письмо нескольким пользователям. Я начал писать процесс в моей модели User, как показано ниже:
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 "no-reply@dailytrailer.net"
subject "Check out the trailer of the day!"
body :user => user
end
end
У меня вопрос, как мне соединить их вместе, я надеюсь, что я на правильном пути ... Я хочу это каждое утро в 5:00, если это понедельник, то каждый пользователь с mondaysub установлен на "t msgstr "отправлен специальный шаблон Я начинаю действительно смущать себя, любая помощь будет очень благодарна. Как вы можете сказать, я новичок в этом, но я читал тонны книг / учебных пособий.
Спасибо!