我需要在计划使用活动作业时存储信息,以便稍后执行。我想将此信息保存在活动作业本身中,但我不确定这是否可能。
这是我正在尝试的简化版本,它重现了我看到的错误:
class TestJob < ActiveJob::Base
queue_as :default
attr_reader :save_for_later
def initialize(info)
@save_for_later = info
end
def perform()
logger.info(@save_for_later)
end
end
class CollectionsController < ApplicationController
def schedule_test_job
TestJob.perform_later(Date.new)
end
end
当我在 Collections 控制器中调用 schedule_test_job 时,我收到一个错误:nil:NilClass 的未定义方法 `map' 并且未调用执行操作。
我假设我需要将我试图保存在数据库中其他地方的信息持久化,但我想知道是否有适当的方法来完成我在这里所做的事情。我也不明白抛出的错误来自哪里。