我正在尝试实现以下功能:当在worker内更新具有paper trail的模型时,必须使用“worker”设置whodunnit。我尝试了很多方法都没有成功,最后一次尝试是尝试在github thread中找到的解决方案。问题是我有一些带有1个或多个参数的perfom工作进程(我已更改此设置为PaperTrail.request.whodunnit = 'worker')。
如何在每个perform之前或周围设置whodunnit,以便版本中的whodunnit保存为whodunnit:worker?
我的worker看起来像这样:
module ModuleName
module Workers
class WorkerClass
include Sidekiq::Worker
sidekiq_options queue: 'default', retry: true
def perform # here with none, 1 or more params
# update some model
end
end
end
end
whodunnit = nil
放在一个ensure
块中,以防出现异常。 - undefined