我有一个check_delivery
方法,它使用Sidekiq来调用EasyPost api gem。
def check_delivery
if tracking_number.present?
EasypostWorker.perform_async(tracking_number)
end
end
class EasypostWorker
include Sidekiq::Worker
def perform(tracking_number)
EasyPost.api_key = Rails.application.secrets.easypost_api_key
tracker = EasyPost::Tracker.create(tracking_code: tracking_number)
tracker.status
end
end
然而,这将返回24个随机字符Sidekiq作业ID而不是跟踪器状态(即" out_for_delivery","已交付"等等)
我做错了什么?
答案 0 :(得分:2)
check_delivery方法调用了EasypostWorker,它返回了作业ID。
显然,Sidekiq工人不会像普通的红宝石类和方法一样返回结果。
所以我在模型中添加了status
属性并更新了Worker中的属性。