掲示板の画像アップロード機能

Gemfileに追加

gem  'carrierwave'

gem 'mini_magick'

bundle installする

 

アップローダの作成

rails g uploader Board_Image

board_image_uploader.rbを作成

board_image_uploader.rb

def default_url デフォルトの画像を指定

'.png'

end

def extension_whitelist アップロードできる拡張子を制限

%w(jpg jpeg gir png)

end

 

カラムの追加

マイグレーションファイル

add_column :boards, :board_image, :string

rails db:migrateを実行

 

Boardモデルにアップローダーの宣言

mount_uploader :board_iamge, BoardImageUploader

 

画像の入力フォームを追加

<div class="form-group">

<%= f.label :board_iamge%>

<%= f.file_field :board_image, class:'form-control mb-3', accept: 'image/*' %>

<%= f.hidden_field :board_image_cache %>

</div>

 

画像の表示

<%= image_tag board.board_image_url, class: 'card-img-top', size: '300x200' %>