我有连接到模型的照片。这些图片进行了分析和EXIF数据被保存为在ActiveStorage::Blob
元。
class Foo < ApplicationRecord
has_one_attached :picture
end
有这个模型,我使用的排序称为order_date
实例的属性。此属性必须与EXIF及时更新团块得到分析之后。
使用回形针,一个before_commit
回调方法就足够了。随着ActiveStorage,我也试过before_save
和after_touch
但两者都没有工作。
我怎样才能运行代码右边的ActiveStorage::AnalyzeJob
已成功运行后?
(我想避免猴子修补ActiveStorage::AnalyzeJob
,因为它也为其他附件进行。)
非常感谢您的帮助!
我找不到任何官员。我结束了重写,因为它是非常简单的,反正分析工作。它看起来像下面。
class ActiveStorage::AnalyzeJob < ActiveStorage::BaseJob
def perform(blob)
blob.analyze
blob.attachments.includes(:record).each do |attachment|
if attachment.record_type == 'Content'
record = attachment.record
record.set_file_info
record.save!
end
end
end
end