【ruby on rails】refileの使い方【画像ファイルアップローダー】

Ruby on Rails

refileは画像に関する処理を便利にしてくれます。
ファイルアップローダーと呼ばれるものです。

  • ファイルのアップロードができる
  • 画像を簡単に読み込める
  • 簡単に画像サイズを変更して表示できる
スポンサーリンク

インストール

以下のコマンドを実行します。

% brew install ImageMagick

以下のコマンドでインストールと書かれている記事もあったのですが、macの場合は上記のようです。

% sudo apt-get update
% sudo apt-get -y install imagemagick

マイグレートファイルに追記してDBを作成しておく

以下のように追記して、$ rails db:migrateを実施する。

今回はdeviseを使用していたのでusersテーブルに以下のように追記しました。

class DeviseCreateUsers < ActiveRecord::Migration[5.2]
  def change
    create_table :users do |t|
   ...
   ...
   ...
      t.string :profile_image_id # こちらを追記
    end

モデルに記載

今回はuserモデルに以下のように記載しました。

※_idをつけないように注意して下さい。

class User < ApplicationRecord
  attachment :profile_image
end

ビューに記載

以下のようにプロフィール画像と名前を表示します。

※fallbackで存在しない場合はno-imageを表示
app/assets/images/no-image.pngの準備が必要

<% @users.each do |user| %>
    <%= attachment_image_tag user, :profile_image, fallback: "no-image.png" %>
    <%= user.username %>
<% end %>

これで完了です。

フリーランスを目指すなら【テックパートナーズカレッジ】

未経験者向けWEBスクール【SHElikes】

コメント