attachment_fuを導入して画像をアップロードしましょう。
まずRMagickをインストールする必要が有ります。
ここで、RMagick は ImageMagickをRubyで動かすためのラッパーですから、
最初にImageMagickをインストールしましょう。
こちらを参考にMacPortを使ってImageMagickをインストールします。
sudo port install tiff -macosx imagemagick +q8 +gs +wmf
続いて、RMagickをインストールしましょう。
sudo gem install rmagick
ここで注意したいのが、インストールが終わった後、
"Successfully installed"というメッセージがでても、
それはRMagicが正常にインストールされたという保証はないそうです。
irbを立ち上げて次のように確認できて、初めてインストール完了だそうです。
$ irb -rubygems -r RMagick
irb(main):001:0> puts Magick::Long_version
This is RMagick 2.11.1 ($Date: 2009/09/05 20:01:08 $) Copyright (C) 2009 by Timothy P. Hunter
Built with ImageMagick 6.5.5-0 2009-09-10 Q8 OpenMP http://www.imagemagick.org
Built for ruby 1.8.7
Web page: http://rmagick.rubyforge.org
Email: rmagick@rubyforge.org
=> nil
HTMLドキュメントが
/System/Library/Frameworks/Ruby.framework/Versions/1.8/usr/share/RMagick/index.html
に保存されているので、こちらも確認しておきましょう。
ここからが、やっとattachment_fuのインストールです。
ruby script/plugin install http://svn.techno-weenie.net/projects/plugins/attachment_fu
アップロードする写真用のモデルを作成します。
script/generate model photo
デフォルトでは下記のようにマイグレーションを行いましょう。
class CreatePhotos < ActiveRecord::Migration def self.up create_table :photos do |t| t.column :parent_id, :integer t.column :content_type, :string t.column :filename, :string t.column :thumbnail, :string t.column :size, :integer t.column :width, :integer t.column :height, :integer t.timestamps end end def self.down drop_table :photos end end
app/models/photo.rbでの設定はこんな感じ。
class Photo < ActiveRecord::Base belongs_to :product has_attachment :content_type => :image, :max_size => 5.megabytes, :resize_to => '500x500>', :thumbnails => { #:small => '30x30>', :thumb => '100x100>' }, :path_prefix => 'public/photos', # Uses public/#{table_name} by default for the filesystem, and just #{table_name} for the S3 backend. :storage => :file_system validates_as_attachment def full_filename(thumbnail = nil) file_system_path = (thumbnail ? thumbnail_class : self).attachment_options[:path_prefix].to_s File.join(RAILS_ROOT, file_system_path, *partitioned_path(thumbnail_name_for(thumbnail))) end end
その他、ViewやControllerの詳しい設定はこちら。
http://d.hatena.ne.jp/nyaago69/20090609/1244555484