我无法将一些ruby代码从我的模型移动到rake任务。我的“联系”模型中的代码如下:
def send_notification_to_contact
UserMailer.notification_contact.deliver_now
end
在我的Mailer文件夹中,我有:
class UserMailer < ApplicationMailer
def notification_contact
contact = Contact.find(1)
mail to: contact.email, subject: "subject of the email"
end
end
我试图在rake任务中移动这个简单的代码(有效)。在文件lib / task / scheduler.rake中我放了
desc "Notify"
task :notify => :environment do
contact = Contact.find(1)
contact.send_notification_to_contact
end
我通过修改我的模型来调用任务如下:
def send_notification_to_contact
system "rake notify"
end
当我调用此方法或使用命令行
时rake notify
没有任何反应。这不是一个与rake相关的问题,如这样的简单行
puts "test"
scheduler.rake文件中的会触发服务器日志中的字符串“test”
有人能告诉我为什么它不起作用以及使任务有效的适当语法是什么?我想我并不完全理解rake如何工作以及它如何与我的Model / UserMailer类交互。感谢。