«

»

7月
27

Rails3でPaperClip

Rails3で画像をアップロードする一番簡単な方法は…PaperClipDragonfly
よくわからないけど,まず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:

Share on Facebook
Rails3でPaperClipb - log

Permanent link to this article: http://bellonieta.net/2011/07/rails3%e3%81%a7paperclip/

コメントを残す

メールアドレスは公開されません