• 主页
  • Rails -在不序列化的情况下将对象作为参数传递

Rails -在不序列化的情况下将对象作为参数传递

我有一个控制器,我必须将一个对象实例作为参数传递给Sidekiq的Worker类。

我使用call 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

我的worker类

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

如何在不序列化对象的情况下将其传递给worker?

转载请注明出处:http://www.jubohx.com/article/20230520/1693373.html