每当宝石控制器方法不起作用

时间:2017-09-13 01:55:43

标签: ruby-on-rails ruby cron whenever

我试图创建一个运行控制器方法的cron作业,但是我遇到了麻烦。

设置\ schedule.rb

every 1.minutes do
  runner "Reset.reset"
end

LIB \ reset.rb

class Reset
  def reset
    logger.debug("This is the cron job")
  end
end

我还运行了--update-crontab来更新cron作业。

为什么日志中没有显示记录器消息?

感谢您的帮助。

1 个答案:

答案 0 :(得分:1)

那是因为Reset.reset试图在Reset类上调用reset方法。也就是说,Reset.reset尝试调用类方法

您的重置方法是一种实例方法。要定义Reset.reset类方法,请使用:

class Reset
  def self.reset
    logger.debug("This is the cron job")
  end
end

此外,您还需要确保您拥有self.logger类方法,否则该代码将会死亡。

最后,对于你自己的启发:Reset因为你写的不是一个控制器。它只是一个普通的旧红宝石物体。