Railsでファイルのアップロード機能を簡単に追加する方法
プログラミングの勉強日記
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
Author And Source
この問題について(Railsでファイルのアップロード機能を簡単に追加する方法), 我々は、より多くの情報をここで見つけました https://qiita.com/mzmz__02/items/a7ae6ea048dfd484d7ca著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .