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 コールバックを呼び出して無限ループを引き起こします。この動作を回避する簡単な方法はありますか?