UploadColumnを使ってみた

画像ファイルのアップロードはFileColumnなどが有名のようですが、
どうも開発が終わっている(?)ようなので、UploadColumnにチャレンジ
まだ日本語の資料が少ないようなので作業メモと同時に記録に残しときます。


参考:UploadColumn<http://uploadcolumn.rubyforge.org/>


まず下準備
illustプロジェクトを作成

$ rails illust


DB等の設定を行った後はおもむろにscaffoldでalbumを作成&マイグレート

$ script/generate scaffold album name:string picture:string
$ rake db:migrate


サーバー起動

$ script/server


<http://localhost:3000/albums>で動くことを確認


では早速とりかかります

プロジェクトのディレクトリ上で以下を実行してインストール

$ git clone git://github.com/jnicklas/uploadcolumn.git vendor/plugins/upload_column
$ cd vendor/plugins/upload_column
$ git checkout 0.3

これでとりあえずインストールされたはず。。。
では早速、画像アップロードのための修正


Modelの変更
app/models/album.rbに追加

class Album < ActiveRecord::Base
upload_column :picture
end


Viewの変更

新規アップロード時にアップロード用フィールドに変更&「multipart => true」対応
app/views/albums/new.html.erbを編集

・・・・
<% form_for(@album) do |f| %>
<% form_for(@album,{:html => { :multipart => true} }) do |f| %>
・・・・
<%= f.text_field :picture %>
<%= upload_column_field 'album', 'picture' %>
・・・・


app/views/albums/show.html.erbを編集

・・・・
<%=h @album.picture %>
<%= image_tag @album.picture.url %>
・・・・


app/views/albums/index.html.erbを編集

・・・・
<%=h album.picture %>
<%= image_tag album.picture.url %>
・・・・

これでOK。
ファイルの格納場所や大きさ変更はModelのところで記載していくみたい。


UploadColumn、結構使えるかも。