LoginSignup
0
0

More than 3 years have passed since last update.

Railsでファイルのアップロード機能を簡単に追加する方法

Last updated at Posted at 2020-07-27

プログラミングの勉強日記

2020年7月27日 Progate Lv.226

概要

 こちらの記事で扱ったgemのCarrierWave用いる。アップロードしたファイルの保存先はデフォルトでpublic/uploadsになる。
 前提として、scaffoldのコマンドで作られている。(以下のは例)

ターミナル
rails generate scaffold user name:string email:string image:string

使い方

 CarrierWaveを使うためにGemfileを編集する

Gemfile
gem 'carrierwave'

Gemfileを編集したら、CarrierWaveをインストールする。

ターミナル
bundle install

アップローダークラスとカラムの紐づけをする。

class モデル名 < ActiveRecord::Base
  mount_uploader [:カラム名], [アップローダークラス]
end

 AvatarアップローダとUserモデルに作成したフィールドavatarを関連付ける。(avatarにアップロードした画像をAvatarアップローダが処理するイメージ)

app/models/user.rb
class User < ActiveRecord::Base
  mount_uploader :avatar, AvatarUploader
end

 これに合わせてビューファイルを変更する。

app/views/users/_form.html.erb
<div class="field">
  <%= form.label :avatar %>
  <%= form.file_field :avatar, id: :user_avatar %>
</div>
app/views/users/show.html.erb
<p>
  <strong>Avatar path:</strong>
  <%= @user.avatar_path %>
</p>
<p>
  <%= image_tag @user.avatar_path %>
</p>

モデルとビューを修正したので、これでCarrierWaveの基本機能が使えるようになった。

参考文献
https://pikawaka.com/rails/carrierwave
https://www.sejuku.net/blog/65175

0
0
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
0
0