Rails无法执行服务方法

时间:2018-02-04 16:21:27

标签: ruby-on-rails ruby service cron whenever

我有一个NotificationService,其方法如下:

def trial teacher
    notification = Notification.create(recipient: teacher, tag: 'trial', text: 'text', title: 'title') 

    notification.deliver
end

我希望有一个Whenever跑步工作来执行此方法... bin/rails runner "NotificationService.new.trial" --silent,但如果我尝试这样做,我会收到错误Please specify a valid ruby command or the path of a script to run.。然而,如果我尝试使用模型而不是服务,它可以工作(例如,Notification.last.deliver

并且在开发时执行完全正常,但不适用于生产。似乎Cron不存在服务类

我错过了什么?

1 个答案:

答案 0 :(得分:0)

解决了!事实证明麻烦不在于Whenever或Cron,而在于我试图运行的确切方法。 由于生产环境的数据不断变化,当我运行NotificationService.new.trial时,我很幸运没有收到错误。然后数据发生了变化,Cron试图运行失败了。

使用安全导航操作员(&amp ;.)解决了所有问题!