Carrierwaveを使用して、次の行を使用して、アバターの3つのバージョン(オリジナル、small_thumb、large_thumb)を作成しました。
process :resize_to_limit => [400, 400]
version :big_thumb do
process :resize_to_limit => [80, 80]
end
version :small_thumb do
process :resize_to_limit => [50, 50]
end
AvatarUploaderクラスに次のメソッドを追加しました。
def reprocess(x,y,w,h)
manipulate! do |img|
img.crop(x.to_i, y.to_i, w.to_i, h.to_i, true)
end
resize_to_limit(180,180)
end
これは、更新が実行された後に私のモデルで呼び出されます。
attr_accessor :crop_x, :crop_y, :crop_w, :crop_h
after_update :reprocess_image, :if => :cropping?
def cropping?
!crop_x.blank? && !crop_y.blank? && !crop_w.blank? && !crop_h.blank?
end
private
def reprocess_image
image.reprocess(crop_x,crop_y,crop_w,crop_h)
end
元のバージョンをトリミングしてサイズを変更できましたが、2つのサムネイルを一緒に更新できないようです。私は無駄にいくつかの異なるテクニックを試しました。
助言がありますか?