Rails3で画像をアップロードする一番簡単な方法は…PaperClip?Dragonfly?
よくわからないけど,まずPaperClipしてみた.
環境はMacOS 10.6.8 + Rails 3.0.7.
1. HomeBrewでImageMagickをインストール
brew install imagemagick
2. Gemfileに追記
gem "paperclip", "~> 2.3"
3. bundle install
4. rails g scaffold content title:string
5. Model(~/app/models/content.rb)の編集
class Content < ActiveRecord::Base has_attached_file :thumbnail end
6. rails g migration add_thumbnail_columns
7. migrationファイルの編集
class AddThumbnailColumns < ActiveRecord::Migration
def self.up
add_column :contents, :thumbnail_file_name, :string
add_column :contents, :thumbnail_content_type, :string
add_column :contents, :thumbnail_file_size, :integer
add_column :contents, :thumbnail_file_updated_at, :datetime
end
def self.down
remove_column :contents, :thumbnail_file_name
remove_column :contents, :thumbnail_content_type
remove_column :contents, :thumbnail_file_size
remove_column :contents, :thumbnail_file_updated_at
end
end
8. 作成View(~/app/views/contents/_form.html.erb)の編集
<%= form_for(@content, :html => {:multipart => 'true' }) do |f| %>
<div class="field">
<%= f.label :title %><br />
<%= f.text_field :title %>
</div>
<div class="field">
<%= f.label "Thumbnail:" %><br />
<%= f.file_field :thumbnail %>
</div>
<% end %>
8. 閲覧View(~/app/views/contents/show.html.erb)の編集
<p id="notice"><%= notice %></p> <p> <b>Title:</b> <%= @content.title %> </p> <p> <b>Thumbnail:</b> <%= image_tag @content.thumbnail.url %> </p>
9. rake db:migrate && rails s → (゜Д゜)ウマー

アップロードしたものは~/public/system/thumbnails/{ID}に保存されるみたい.
Similar Posts:
- Redmineでなるべく簡単にチケットを作成するTips
- MBA(Late2010)の環境整備memo
- Good bye, 2011!
- Sphinxの設定とか
- Sphinx+blockdiagを3行でインストール






