QA@IT

Paperclipのhas_attached_fileのstylesの設定で、ある条件の場合だけ、特定のstyleのみ作成するという事は出来るのでしょうか?

2324 PV

例えば下記のようなstylesを設定している場合、avatarの新規作成時には全てのstylesを作成し、avatarの更新時にはstylesのthumb1、thumb2のみを保存し、thumb3とthumb4に関しては保存処理を行わず、元々の新規作成時の画像をそのまま保持したいというケースです。
画像はS3に保存する想定です。

Paperclipの機能やオプションなどで、上記のような処理を行う事は可能でしょうか?
もしCarrierWaveで可能なのであれば、CarrierWaveでの例でも構いません。

  has_attached_file :avatar,
    :styles => {
      :thumb1 => ["32x32#", :png],
      :thumb2 => ["64x64#", :png],
      :thumb3 => ["128x128#", :png],
      :thumb4 => ["256x256#", :png],
    }

回答

CarrierWave の Conditional versions というのがやりたいことそのままの例に見えますが、どうでしょうか。

https://github.com/jnicklas/carrierwave#conditional-versions

編集 履歴 (0)
  • なるほど。一つ一つのversionにifを指定出来るんですね。確かにこれなら実現出来そうです。ありがとうございます。 -
ウォッチ

この質問への回答やコメントをメールでお知らせします。