CarrierWaveを試してみる。

参考

https://y-hilite.com/3150/

CarrierWaveの使い方【Gem】

 

1.新規プロジェクト生成

$ rails new carrierwave_sample_app

$ cd carrierwave_sample_app

 

2.(Gemfile)に追加

gem 'carrierwave'

$ bundle install

 

3.generate

$ rails g scaffold user name:string password:string

$ rails g uploader Avatar

 

4.データベース生成

$ rails g migration add_avatar_to_users avatar:string
$ rails db:create db:migrate

 

5.(app/models/user.rb)を変更

class User < ApplicationRecord
mount_uploader :avatar, AvatarUploader
end

 

6.(app/views/users/_form.html.erb)

<div class="field">
<%= form.label :avatar %><br>
<%= form.file_field :avatar %>
</div>

 

6.(app/controllers/users_controller.rb)

def user_params
params.require(:user).permit(:avatar, :name, :password)
end

 

7.(app/views/users/show.html.erb)

<img src="<%= @user.avatar %>" width="100">

 

8.サーバー立ち上げて確認

$ rails s