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