実装してみて、ちょころビット感動を覚えたので、忘れないうちに...
メモ、めも...
◆なぜに、dragonfly ??
Rails2.xのころは、file_column を利用していた。
あつかったアプリ(他社が開発)が使っていたから..
いろいろテクニックも覚え、それなりに重宝していたのだが、
画像アップロード時点で、必要なサイズを作ってしまうことから、
デザイン変更のたびに、古いサイズと新しいサイズが混在する
時期が発生したり、再登録作業を終えてからリリースしたりと、
なにかと苦労してしまう。
...なにかいいものは...とグーぐる先生へ。
見つけたのが、この dragonfly !!
こいつは、表示時に、必要なサイズへとリサイズしてくれるらしい。
これなら、VIEWの変更だけですむハズ...と、利用してみる。
◆インストール
めっちゃ簡単!
Gemfile に追加して、インストールし、ちょっとだけ設定すればいい。
前提として、OSへ、image-magick が、インストール済みとします。
(もちろんディレクトリはアプリルートですよぉ)
- vi Gemfile
gem 'rack-cache', :require => 'rack/cache'
gem 'dragonfly', '~>0.9.8' - bundle install
- vi config/initializers/dragonfly.rb
require 'draginfly/rails/images'
※起動時に、 dragonfly を読み込ませるため
initializersにファイルを作成。
◆テーブル関連
◆表示
- アップロード先のモデルに以下を追加する。
class table < ActiveRecord::Base
image_accessor :image
end - テーブルに項目を追加。
image_name : string
image_uid : string
◆アップロード
<%= f.file_field :image %>
◆表示
- そのまま
<%= image_tag @table.image.url %> - 縮小、拡大
強制的に... <%= image_tag @table.image.thumb('500x300!').url %>
<%= image_tag @table.image.process(:thumb, '700x200!').url %>
縦横比維持... <%= image_tag @table.image .process(:thumb, '700x200').url %> - 変換
<%= image_tag @table.image.jpg.url %>
<%= image_tag @table.image.process(:greyscale).encode(:tiff).url %>
0 件のコメント:
コメントを投稿