LoginSignup
4
2

More than 5 years have passed since last update.

【自分メモ】Railsで画像アップロード機能の実装

Posted at

環境

・Ubunts 14.04
・Rails 5.1.5
・Ruby 2.4.0
・PostgreSQL 9.3.18

使用するgem

・carrierwave

実装手順

gemをインストール

Gemfileに以下の内容を書いて、bundle installを実行

Gemfile
gem 'carrierwave', '~> 1.0'

Uploaderを作成する

carrierwaveのインストールが完了したらuploaderクラスを生成できるので、以下のコマンドでuploaderを作成する

rails g uploader <アップローダー名>

Uploaderでアップロードした画像を保存する場所を指定する

app/uploaders/image_uploader.rb
class ImageUploader < CarrierWave::Uploader::Base
  include CarrierWave::MiniMagick
  storage :file 
  # 画像を保存する場所を指定
  def store_dir
    "uploads/#{model.class.to_s.underscore}/#{mounted_as}/#{model.id}"
  end
end

Uploaderをモデルのカラムに紐付ける

アップロードした画像をどのテーブルのカラムに保存するかを定義する
mount_uploaderメソッドを使ってカラムとUploaderを紐付ける

例:Sampleモデルのimageカラムに作成したUploaderを紐付け

sample.rb
class Sample < ApplicationRecord
  mount_uploader :image, ImageUploader
end
4
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
2