Carrierwave を使用して画像をアップロードしています。メインの画像バージョンは元の形式のままにしておく必要がありますが、他のバージョンは gif に変換する必要があります。
現時点では、私はこのようなことをしています:
def filename
change_ext_to_gif(super)
end
def change_ext_to_gif(ext)
ext.chomp(File.extname(ext)) + ".gif"
end
version :preview do
process :resize_to_fill => [60, 60]
process :convert => "gif"
end
version :full do
process :resize_to_limit => [320, 320]
process :convert => "gif"
end
version :mobile do
process :resize_to_limit => [72, 96]
process :convert => "gif"
end
もちろん、これにより元のファイルの拡張子も変更されます。これを解決する方法はありますか?バージョンのブロックでいくつかのメソッドをオーバーライドする必要があると思います。しかし、私はそれらを理解することができませんでした(ファイル名とURLを上書きしようとしましたが、これは役に立ちますが、バージョンのファイルが削除されるのを防ぎます)。