ruby-on-rails – 如何在ActiveJob回调方法中获取Job属性?
发布时间:2020-12-16 23:12:00 所属栏目:百科 来源:网络整理
导读:Rails 4.2,active_jobs,callback_methods 在自定义作业的perform方法中,我创建了一条新记录(并将文件上传到S3).如何在after_perform回调中传递或获取新记录ID?我想发送一封post_perform的电子邮件,其中包含指向S3文档的链接…但是,不知道如何在after_perfor
Rails 4.2,active_jobs,callback_methods
在自定义作业的perform方法中,我创建了一条新记录(并将文件上传到S3).如何在after_perform回调中传递或获取新记录ID?我想发送一封post_perform的电子邮件,其中包含指向S3文档的链接…但是,不知道如何在after_perform方法中获取id.根据文档,您可以使用job.attributes,但我得到’未定义的方法属性’. 我可以将邮件程序调用移动到perform方法中,但我宁愿使用回调来正确处理它.我不确定如何在perform方法之外访问属性(或这些属性的来源). 我试着通过将其置于回调中来做一些侦探工作(以确定回调可用的属性): puts "job: #{ job }" 要么 puts "job: #{ job.attributes }" 要么 puts "job: #{ job.attributes.first }" 这些都没有奏效,而且都导致了未定义的“属性”. 解决方法
您必须使用参数而不是属性:
after_perform do |job| record = job.arguments.first # Do something with the record end 我的执行方法如下所示: def perform(record) # Perform stuff end (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |