Поскольку ошибка предполагает, что вы не определили User
.
Вам необходимо ввести идентификатор электронной почты или идентификатор пользователя и найти пользователя из базы данных, а затем передать его функции.
Что-то вроде следующего:
require 'rake'
desc 'send digest email'
task :send_warn_course, [:user_email] => :environment do |t, args|
user = User.find_by_email args[:user_email]
MailCourseWarnMailer.course_available(user).deliver!
end
# And my Mailer is:
class MailCourseWarnMailer < ActionMailer::Base
def course_available(user)
@user = user
mail(to: @user.email, subject: "Curso disponível")
end
end
Затем вы можете запустить задачу следующим образом:
rake send_warn_course['user@email.com']
Поскольку это задача планировщика, вы можете ее не выполнятьпередать переменную с каждой задачей и вместо этого хотел бы выполнить некоторые запросы к базе данных, чтобы найти соответствующих пользователей.Но это было только для того, чтобы продемонстрировать исправление ошибки.