2014-10-09 57 views
1

我的sidekiq worker的请求对象被识别为字符串。被识别为字符串的请求对象

application_controller.rb

def log_variant 
    @request = request 
    AnalyticsWorker.perform_async(@request) 
    end 

variant_worker.rb

class VariantWorker 

    include Sidekiq::Worker 

    def perform(current_request) 
    variant = current_request.variant.join 
    puts variant 
    end 
end 

以下是错误

undefined method `variant' for "#<ActionDispatch::Request:0x00000101b83510>":String 

我存储请求对象在一个实例变量所以我应该能够调用它的变体方法是吗?请求对象是否太复杂以至于无法执行此边框操作?

回答

1

在后台,Sidekiq将该参数序列化到Redis中。我猜Redis正在把它转换成一个字符串。一般来说,您想要传递参数here中的最小数据。

相关问题