У меня есть модель, к которой прикреплено видео с помощью Скрепки . После сохранения я использую сохраненное видео для создания миниатюры. Мне нужно делать это после каждого сохранения, даже если новое видео не было загружено, потому что пользователь может изменить время захвата миниатюры.
В настоящее время я использую 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, вызывая бесконечный цикл. Есть ли простой способ обойти это поведение?