carrierwaveは画像アップロード機能を簡単に実装できるgem。
[前提]スカフォードで画面を作っていること。
##インストール
Gemfileに下記の記述を追加した後にbundle installを行う。
gem 'carrierwave'
bundle install
##アップロード実装
下記のコマンドで実行する。
※imageはファイルパスとして使うカラムの名称に合わせること。
rails g uploader image
uploaders/image_uploader.rbというファイルが作成される。
ファイルパスをテーブルに追加してマイグレートを行う。
例:catというテーブルにimageというカラムを追加している
rails g migration add_image_to_cat image:string
rake db:migrate
モデルクラスの変更を行う。
mount_uploader行の追加とattr_accessibleにimageを追加する。
cat.rb
class Cat < ActiveRecord::Base mount_uploader :image, ImageUploader attr_accessible :name, :imageend
アップロード画面作成のためビューの変更を行う。
_form.html.erb
<%= f.label :image %><%= f.file_field :image %>
画像表示のため詳細のビューについて変更を行う。
show.html.erb
<p> <b>Image:</b> <%= image_tag @cat.image.to_s %></p>
これでアップロードして確認が行える。