Мне нужно сохранить информацию в то время, когда активное задание запланировано для использования, когда оно будет выполнено позже. Я хотел бы сохранить эту информацию в самом активном задании, но не уверен, что это возможно.
Вот упрощенная версия того, что я пытаюсь сделать, которая воспроизводит ошибку, которую я вижу:
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
Когда я вызываю schedule_test_job в контроллере коллекций, я получаю сообщение об ошибке: неопределенный метод «карта» для nil: NilClass, и действие выполнения не вызывается.
Я предполагаю, что мне нужно сохранить информацию, которую я пытаюсь сохранить в другом месте в моей базе данных, но я хотел бы знать, есть ли правильный способ выполнить то, что я здесь делаю. Я также не понимаю, откуда берется ошибка.
i=Time.current.to_i
иTime.at(i)
- person Cristian Bica   schedule 09.02.2015schedule_test_job
в контроллере. К вашему сведению о том, что для инициализации необходимо делать другие вещи, эта ошибка исчезнет, если я добавлю вызов super() в конце блока инициализации. - person Will   schedule 09.02.2015