- 2009年1月11日 11:47 AM
- RoR
画像ファイルのアップロードが便利になるように「FileColumn」というプラグインをインストールする。合わせて、新しいカラムをテーブルに追加(削除)するやり方も一緒にメモ。
Railsで画像を扱うにあたっては前もってImageMagickとRMagickをインストールしておくこと。
$ sudo gem install ImageMagick $ sudo gem install rmagick
FileColumnプラグインを使用したいRailsアプリケーションのrootディレクトリにターミナルで移動してから以下のコマンドを実行。
$ ruby script/plugin install http://filecolumn.googlecode.com/svn/tags/
※新しいプラグインをインストールしたらサーバを再起動すること。
FileColumnプラグインを利用するために、カラム(テーブルの項目)を追加する。カラムの追加はジェネレイターのmigrationコマンドで行う。引数に追加するフィールドを「add_image_to_entry image:string」として、以下を実行。
$ ruby script/generate migration add_image_to_entry image:string
「add_image_to_entry」は、imageという新しい項目をモデル名:entryに追加するという意味。その後の「image:string」で、より詳しくこの項目の内容を定義している。
※逆にカラムの削除はaddの代わりに「remove」を使い「from_モデル名」とすればいい。
追加したカラムによる新しいテーブル定義が出来たので、migrateを実行して実際にテーブルを作成する。
$ rake db:migrate (in /Users/showjin/Documents/Rails/blog) == 3 AddImageToEntry: migrating =============================================== -- add_column(:entries, :image, :string) -> 0.0054s == 3 AddImageToEntry: migrated (0.0057s) ======================================
mysqlに接続して、ほんとにカラムが追加されているか確認してみる。

「Field」部分に追加した「image」というカラム名が追加されている。
モデルの修正
FileColumnプラグインを利用するために、画像を扱うモデル(この場合はentry)にfile_columnの設定を加える。
app/models/entry.rb
を開いて、class Entry < ActiveRecord::Base の内側に以下の記述を追加。
file_column :image, :magick => {:geometry => '458x360>'}
この458×360という指定によって、アップロードと同時にこのサイズ内で拡大縮小が可能となる。数字の後ろ(360)に「>」を付けると、縦横どちらか大きい方を基準に縦横比を変えずに拡大縮小される。
このfile_columnで指定したカラムには、そのアップロードした画像のファイル名のみが保存され、実際の画像データはpublicフォルダにモデル名と同じ名前のフォルダが作成され(この場合はentry)その中に保存される。この場合はpublic/entry/imageフォルダの中に。
コメント:0
トラックバック:0
- この記事のトラックバック URL
- http://showzine.info/blog/2009/01/filecolumn%e3%83%97%e3%83%a9%e3%82%b0%e3%82%a4%e3%83%b3%e3%81%ae%e3%82%a4%e3%83%b3%e3%82%b9%e3%83%88%e3%83%bc%e3%83%ab.html/trackback
- トラックバックの送信元リスト
- FileColumnプラグインのインストール - SHOWJIN*BLOG より