У меня есть контроллер, от которого я должен передать экземпляр объекта в качестве аргумента классу Worker Sidekiq.
Мой контроллер с вызовом WegWorker.synchronize(@service)
class Api::V2::Events::WegSessionsController < Api::V2::Events::ApplicationController
before_action :load_service
def synchronize
@service.keep_cancelled = params[:keep_cancelled].to_b
if @service.valid_connection?
WegWorker.perform_async(@service)
render json: {
status: :ok,
message: @service.message
}, status: :ok
else
render json: {
status: :unprocessable_entity,
errors: @event.errors.full_messages
}, status: :ok
end
end
.. some code with service object instantiation
end
My рабочий класс
class WegWorker < ::CarrierWave::Workers::ProcessAsset
include Sidekiq::Worker
sidekiq_options retry: false
def perform(service)
service.synchronize
end
end
Но в настоящее время я получаю сообщение об ошибке:
WARN: NoMethodError: undefined method `synchronize' for "#<WegService:0x0000000013f9abb0>":String
Как передать объект без сериализации его работнику?