スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

file_column プラグインの使い方

今回は画像アップロードのためのプラグイン。file_columnの使い方について。
最近ではPaperclipというプラグインもあるらしいが、とりあえずこちらを使うことにした。

まずは普通にrailsプロジェクトを作成し、ディレクトリの中に移動。
$ rails new test_f_column
$ cd new test_f_column

そして、file_columnプラグインのインストール。github経由で行う。
$ rails plugin install git://github.com/tekin/file_column.git

このfile_columnを使用するためにはRmagickが必要になる。
このためGemfileに以下を記述し、bundle installする。
gem 'rmagick', :require => 'RMagick'

bundle install


scaffoldで簡単にテストしてみる。
$ rails g scaffold Photo title:string image:string
$ rake db:migrate


モデル(app/models/photo.rb)に画像のパスを格納する列を追加。
class Photo < ActiveRecord::Base
file_column :image, :magick => {
:versions => {
:thumb => "50x50",
:middle => "100x100",
:large => "400x400"
}
}
end
画像を保存するパスを変更したい場合は、
class Photo < ActiveRecord::Base
file_column :image,
:root_path => "#{Rails.root}/public/album",
:web_root => "album/",

:magick => {
:versions => {
:thumb => "50x50",
:middle => "100x100",
:large => "400x400"
}
}
end
のようにする。
次にビューの変更をする。(app/views/photos/_form.html.erb)
<%= form_for(@photo, :html => { :multipart => true }) do |f| %>
<% if @photo.errors.any? %>
<div id="error_explanation">
<h2><%= pluralize(@photo.errors.count, "error") %> prohibited this entry from being saved:</h2>

<ul>
<% @photo.errors.full_messages.each do |msg| %>
<li><%= msg %></li>
<% end %>
</ul>
</div>
<% end %>

<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label :image %><br />
<%= file_column_field "photo", "image" %>
</div>
<div class="actions">
<%= f.submit %>
</div>
<% end %>
以上のようにmultipartにする必要があるみたい。
続いて、show.html.erbを変更。
<p id="notice"><%= notice %></p>

<p>
<b>Title:</b>
<%= @photo.title %>
</p>

<p>
<b>Image:</b>
<%= image_tag(url_for_image_column(@photo, "image", :middle)) if @photo.image %>
</p>


<%= link_to 'Edit', edit_photo_path(@photo) %> |
<%= link_to 'Back', photos_path %>


最後に確認してみる。
$ rails s


どうやらきちんと動作しているっぽい。
とりあえず簡単な画像アップロードならこれで十分だと思う。
気が向いたらPaperclipも使ってみようかな。。。

WEB DB PRESS Vol.60

新品価格
¥1,554から
(2011/2/21 22:39時点)



コメントの投稿

非公開コメント

検索フォーム
プロフィール

yas

Author:yas
yasと申します。
RailsにてWebアプリケーション開発をしております。

【開発環境】
OS: Mac OSX 10.6
Ruby: 1.9
Rails: 3.0
IDE: NetBeans6.9

最新記事
カテゴリ
月別アーカイブ
RSSリンクの表示
リンク
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。