我有一个模型,其中附有Paperclip的视频。保存后,我使用保存的视频生成缩略图。每次保存后我都需要这样做,即使没有上传新视频,因为用户可以更改捕获缩略图的时间。
我目前正在使用 after_post_process 来执行此操作,但它只会在上传文件时生成缩略图(这是一个回调,它是 Paperclip 的一部分)。
理想情况下,我会像这样使用 after_save 回调:
after_save :save_thumbnail
def save_thumbnail
#generate thumbnail...
self.update_attributes(
:thumbnail_file_name => File.basename(thumb),
:thumbnail_content_type => 'image/jpeg'
)
end
不幸的是 update_attributes 调用 save,然后调用 before_save 回调导致无限循环。有没有一种简单的方法来规避这种行为?