我有一个 rake 任务,旨在调用 Mailer 并向满足给定条件的某些用户发送电子邮件。但是,当我使用从控制台调用 rake 任务时,rake nagging_email:send
我得到以下“ArgumentError:没有给出方法名称”并且任务没有运行。完整的控制台错误日志可以在这里看到:https ://gist.github.com/srt32/6433024
我有一个邮件设置如下:
class WorkoutMailer < ActionMailer::Base
def nagging_email(user)
@user = user
subject = "What have you done today?"
@url = 'http://frozen-taiga-7141.herokuapp.com/members/sign_in'
mail to: @user.email,
subject: subject.to_s
end
end
然后是一个如下的 rake 任务,它获取所有满足给定条件(懒惰)的用户,然后以该用户为参数调用 Mailer:
namespace :nagging_email do
desc "send nagging email to lazy users"
task :send => :environment do
daily_nag
end
def daily_nag
users = User.all
users.each do |user|
unless last_workout(user) == Date.today
WorkoutMailer.nagging_email(user).deliver
end
end
end
def last_workout(user)
user = user
last_workout = user.workouts.order("date DESC").limit(1)
last_workout_date = last_workout.date
return last_workout_date
end
end
任何试图弄清楚如何运行这个 rake 任务的帮助将不胜感激。谢谢。