Resque 在 class 上调用了一个方法,而实际上应该在记录上调用它,因此产生了无方法错误

Resque is calling a method on the class when really it should be called on a record, thus producing a no method error

我在控制台调用这个方法:

pry(main)> Resque.enqueue(GameMetrics, 142)
=> true

执行上述操作后,Game Metrics Queue 的失败作业选项卡中的 Resque 前端出现以下错误:

这是我的执行方法(在作业文件夹中):

class GameMetrics
  @queue = :game_metrics

  def self.perform(game_id)
    game = Game.find(game_id)
    if game.data_recorded? == false && game.number == 1 && game.user.is_admin? == false
      game.answered_game_questions.includes(:question).each do |game_question|
        company_question = CompanyQuestion.find_or_create_by(company: game.company, question: game_question.question)
        company_question.increment(:freq_100_credit_gained) if game_question.change_in_earnings == 100
        company_question.increment(:freq_over_49_lost_of_total_poss_loss) if game_question.percentage_points_lost > 49
        company_question.increment(:freq_over_66_lost_of_total_poss_loss) if game_question.percentage_points_lost > 66
        company_question.increment(:freq_answered)
        company_question.save
      end
    end
    game.update(data_recorded?: true)
  end
end

确实有一个 ID 为 142 的游戏,所以这可能是什么问题?谢谢!! 我正在使用 rails 4.2 和 resque 1.22.0

经过几个小时的努力,我发现我只需要重新启动我的

rake QUEUE=* environment resque:work

加载新 environment/working 代码的任务。

本来想重启本地redis服务器,但是忘了rake任务

TL;DR 在您更改代码并且不明白为什么这些东西不起作用时重新启动所有这些东西

希望这对某人有所帮助!