gpt4 book ai didi

ruby-on-rails - 如何在 ActiveJob 回调方法中获取作业属性?

转载 作者:行者123 更新时间:2023-12-04 10:36:54 24 4
gpt4 key购买 nike

Rails 4.2、active_jobs、callback_methods

在自定义作业的执行方法中,我创建了一条新记录(并将文件上传到 S3)。如何在 after_perform 回调中传递或获取新记录 ID?我想在 after_perform 发送一封电子邮件,其中包含指向 S3 文档的链接……但是,不确定如何在 after_perform 方法中获取 id。根据文档,您可以使用 job.attributes,但我得到“未定义的方法属性”。

我可以将邮件程序调用移动到 perform 方法中,但我宁愿使用回调正确处理它。我不确定如何在 perform 方法之外访问属性(或这些属性的来源)。

我试图通过将它放在回调中来做一些侦探工作(以确定回调可用的属性):

 puts "job: #{ job }"

或者
puts "job: #{ job.attributes }"

或者
puts "job: #{ job.attributes.first }"

这些都不起作用,并且都导致了未定义的“属性”。

最佳答案

您必须使用 arguments而不是 attributes :

after_perform do |job|
record = job.arguments.first
# Do something with the record
end

我的执行方法如下所示:
def perform(record)
# Perform stuff
end

关于ruby-on-rails - 如何在 ActiveJob 回调方法中获取作业属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29597750/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com