CarrierWaveとは
Rubyのアプリケーションから簡単にファイルをアップロードするためのgemです。
開発環境
mac
ruby: 2.6.4
rails: 5.2.6
db: mysql
注意事項
本記事は、ローカルで作業する前提となります。
Gem追加後は読み込みの為にサーバーの再起動をしてください。
Carrierwaveのバージョンが2.0の場合は、Rails 5.0以上・Ruby 2.2以上が必要との事なので注意して下さい。
詳しい内容は下記の公式サイトから参照してください。
carrierwave
導入手順
- Gemfileにcarrierwave追加後インストール
Gemfile
gem 'carrierwave', '~> 2.0'
ターミナル
% bundle
- 下記のコマンドでアップローダークラスを生成します。
ターミナル
% bundle exec rails g uploader Avatar
- アップロード画像の情報を保存するavatarカラムを追加
ターミナル
% bundle exec rails g migration add_avatar_to_users avatar:string
ターミナル
% bundle exec rails db:migrate
ストロングパラメータにpermit(:avatar)
の追加を忘れずに
- avatarカラムとアップローダークラスの紐付け
user.rb
class User < ActiveRecord::Base
mount_uploader :avatar, AvatarUploader
end
- GithubにアップロードしないようGit管理下から除外
.gitignore
/public/uploads
以上です。