基本上,如果用户在创建后的24小时内没有发布任何帖子,我想向用户发送电子邮件提醒。我对如何在没有先执行操作的情况下发送电子邮件感到困惑,例如create
或update
。
控制器 users_controller.rb
def run
@user = current_user
if Time.now.utc == @user.created_at + 24.hours && @user.microposts.empty?
UserMailer.twentyfour_email(@user).deliver
end
end
邮件程序 user_mailer.rb
def twentyfour_mailer
@user = user
mail(to: @user.email, subject: 'Post something on the site!')
end
答案 0 :(得分:2)
您不需要通过控制器操作实现此操作,您只需要一个cron作业来启动任务(whenever gem就可以执行此操作)。这可能看起来像:
every 1.day, :at => '4:30 am' do
runner "User.notify_lazy_users"
end
答案 1 :(得分:0)