Hatena::Grouprubyist

yuisekiのいまさらruby厨日記

 | 

2008-11-04

画像ファイルアップロード

| 21:28 | はてなブックマーク - 画像ファイルアップロード - yuisekiのいまさらruby厨日記

既存のWebアプリにローカルからの画像アップロード機能を追加しようとおもった。

けっこう手順めんどいのだわ


  • プラグインのインストール
    • なにも考えたくない、「rails 画像 アップロード」で検索して一番多いfile_columnというやつを使う
sudo aptitude install imagemagick libmagick9-dev
gem install rmagick -v 1.15.14
script/plugin install http://opensvn.csie.org/rails_file_column/plugins/file_column/trunk

gem install rmagickでエラーがでる。ここが一番めんどい。Can't find Magick-config

まずlibmagick9-devがないとだめ。さらにaptで入るimagemagickが古いらしいので、それにあわせてrmagickのバージョンを落とす。

ここらへんでrailsプロセスを再起動しておく


  • マイグレーション
    • spotというモデルにimgfileというカラムを追加する例
ruby script/generate migration add_imgflie_to_spot imgfile:string
rake db:migrate
    • model/spot.rbの末尾にfile_column :imgfileをつける
class Spot < ActiveRecord::Base
  file_column :imgfile
end

  • viewの書き換え
  • views/spots/newとかeditのform_forで
    • form_for(@spot, :html => {:multipart => true})を指定
    • <%= file_column_field("spot", "imgfile") %>とかすると、ファイルアップロード用のハコが出てくる
  • アップロード後にファイルを表示するには、、
  • views/spots/indexなどで
<%= image_tag url_for_file_column(@spots, :imgfile) unless @spots.imgfile.blank? %>

みたいにすればOKらしい。


小一時間でひととおり動くようになりましたわーーい。

ごはん食べに行くし。

トラックバック - http://rubyist.g.hatena.ne.jp/yuiseki/20081104
 |