2015-04-13 15 views
6

Raylar 4.2, active_jobs, callback_methodsActiveJob geri arama yöntemlerinde İş öznitelikleri nasıl edinilir?

Özel bir İşin gerçekleştirilme yönteminde I yeni bir kayıt oluşturdu (ve S3'e bir dosya yükler). After_perform geri aramada bu yeni kayıtları nasıl geçebilirim veya alabilirim? S3 belgesine bir link ile after_perform bir e-posta göndermek istiyorum ... ama, after_perform yönteminin içinde id'i nasıl alacağınızdan emin değilim. Dokümanlara göre job.attributes'u kullanabilirsiniz, ancak 'undefined method attributes' özelliğini kullanıyorum.

Postacı çağrısını performleme yöntemine taşıyabilirim, ancak Id, geri aramaları kullanarak doğru şekilde halledebilir. Performans yönteminin dışında özelliklerin (veya bu özniteliklerin nereden kaynaklandığı) nasıl erişileceğinden emin değilim.

puts "job: #{ job }" 

veya

puts "job: #{ job.attributes }" 

veya

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

ben geri aramasında bu koyarak (geri arama için kullanılabilir edildi niteliklerini belirlemek için) biraz detaylı çalışma yapmaya çalıştık

bunların hiçbiri çalışmamış ve hepsi tanımlanmamış 'nitelikler' ile sonuçlanmıştır.

cevap

8

Sen attributes yerine arguments kullanmak zorunda:

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

Nerede benim yöntem görünüyor gerçekleştirmek gibi:

def perform(record) 
    # Perform stuff 
end