Canvas::Resize::Rails
canvasResizeをRails+carrierwaveで簡単に使えるようにする
インストール
Gemファイルに以下を追加
gem 'canvas-resize-rails'application.jsに以下を追加
//= require canvas-resize-sprockets使い方
carrierwaveのmodelをProfile, 対象のカラム名をimageとする場合、対象のmodelに以下のように設定
  mount_uploader :image, ImageUploader
  canvas_resize :imageformで例えば以下のようになっている場合、
= simple_form_for(@profile) do |f|
  = f.input :image, as: :file, input_html: { class: 'resize_trigger' }jsで以下のようにする。
$("input.resize_trigger").prepareToResizeForAll()これでファイルに画像を設定するタイミングで自動的に以下の処理が行われる
- profile[image_base64]というhidden_fieldにbase64でエンコードされた画像が設定される
- profile[image_file_name]というhidden_fieldにファイル名が設定される
この状態でsubmitするとリサイズ済みのファイルがcarrierwaveを通じて保存される