カテゴリ: Rails 更新日: 2026/02/20

RailsのActive Storage導入を完全解説!初心者でもできるファイルアップロード設定手順

Active Storage導入:インストール/マイグレーション/初期設定の手順
Active Storage導入:インストール/マイグレーション/初期設定の手順

先生と生徒の会話形式で理解しよう

生徒

「Railsで画像をアップロードしたいんですが、どうやって始めればいいんですか?」

先生

「RailsではActive Storageという仕組みを使うと、画像やファイルを簡単に扱えます。」

生徒

「Active Storageって、特別な設定が必要なんですか?」

先生

「最初にインストールやデータベースの準備が必要です。順番に見ていきましょう。」

1. Active Storageとは?Railsでファイルアップロードを扱う仕組み

1. Active Storageとは?Railsでファイルアップロードを扱う仕組み
1. Active Storageとは?Railsでファイルアップロードを扱う仕組み

Active Storageは、Railsに標準で用意されているファイルアップロード機能です。画像やPDFなどのファイルを、データベースと連携して安全に保存できます。倉庫(保存先)と管理台帳(データベース)をセットで用意してくれる仕組みだと考えると分かりやすいです。

Rails Active Storageを使うことで、ローカル環境だけでなく、Amazon S3などのクラウドストレージにも同じ書き方で保存できます。

2. Active Storageを使う前の準備と環境確認

2. Active Storageを使う前の準備と環境確認
2. Active Storageを使う前の準備と環境確認

Active StorageはRails標準機能なので、追加のgemは基本的に不要です。ただし、Railsアプリが正しく作成されていることが前提になります。Railsは「決まりごとを守る」ことで、少ない設定で動くフレームワークです。

まず、Railsアプリのディレクトリに移動していることを確認します。


cd myapp

この状態でRailsのコマンドが使えることが重要です。

3. Active Storageのインストール手順

3. Active Storageのインストール手順
3. Active Storageのインストール手順

Active Storageを使うには、専用のテーブルを作成する必要があります。これは「どのファイルが、どのデータに紐づいているか」を管理するためです。


rails active_storage:install

このコマンドを実行すると、マイグレーションファイルが自動で作成されます。マイグレーションとは、データベースの設計図のようなものです。

4. マイグレーションを実行してデータベースを準備する

4. マイグレーションを実行してデータベースを準備する
4. マイグレーションを実行してデータベースを準備する

次に、作成された設計図をもとに、実際のデータベースを作成します。これをマイグレーションの実行と呼びます。


rails db:migrate

これでActive Storage用のテーブルがデータベースに作られました。ファイルそのものは保存先に、情報だけがデータベースに入ります。

5. storage.ymlで保存先を設定する

5. storage.ymlで保存先を設定する
5. storage.ymlで保存先を設定する

ファイルをどこに保存するかは、config/storage.ymlで設定します。開発環境では、パソコンの中に保存する設定が最初から用意されています。


local:
  service: Disk
  root: <%= Rails.root.join("storage") %>

この設定は「Railsアプリのstorageフォルダにファイルを置く」という意味です。箱の場所を指定しているイメージです。

6. Active Storageをモデルに紐づける基本設定

6. Active Storageをモデルに紐づける基本設定
6. Active Storageをモデルに紐づける基本設定

次に、どのデータにファイルを持たせるかを決めます。例えばUserモデルに画像を持たせたい場合、次のように書きます。


class User < ApplicationRecord
  has_one_attached :avatar
end

has_one_attachedは「1つのファイルを持つ」という意味です。名前(avatar)は自由に決められます。

7. コントローラでファイルを受け取る準備

7. コントローラでファイルを受け取る準備
7. コントローラでファイルを受け取る準備

フォームから送られてきたファイルを受け取るためには、Strong Parametersに項目を追加します。Strong Parametersは、受け取って良い情報を明示する仕組みです。


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

これで、画像ファイルも一緒に保存できるようになります。

8. ビューでファイルアップロードフォームを作る

8. ビューでファイルアップロードフォームを作る
8. ビューでファイルアップロードフォームを作る

最後に、実際にファイルを選択する画面を作ります。Railsのフォームヘルパーを使うと簡単です。


<%= form_with model: @user do |f| %>
  <%= f.text_field :name %>
  <%= f.file_field :avatar %>
  <%= f.submit "保存" %>
<% end %>

これでActive Storageの基本的な導入と初期設定は完了です。画像アップロードの土台ができました。

カテゴリの一覧へ
新着記事
New1
Ruby
“すべてはオブジェクト”を体感!初心者向けRubyのオブジェクト指向入門【irbで学ぶ】
New2
Ruby
Rubyの標準入出力を完全ガイド!puts・print・pの違いとデバッグ活用法
New3
Ruby
Gemとは?RubyGemsとBundlerを初心者向けに完全解説!依存関係管理も図解でわかりやすく理解
New4
Ruby
Rubyの文字エンコーディング入門!UTF-8・マジックコメント・外部/内部エンコーディングを完全解説
人気記事
No.1
Java&Spring記事人気No1
Ruby
Rubyのreduceとinject入門!合計計算や集計を初心者向けに分かりやすく解説
No.2
Java&Spring記事人気No2
Ruby
Rubyの文字列エンコーディング完全ガイド!Encoding・force_encoding・encodeを初心者向け解説
No.3
Java&Spring記事人気No3
Ruby
Rubyの始め方ガイド:インストールから最初のHello Worldまで(Windows/Mac/Linux)
No.4
Java&Spring記事人気No4
データベース
PostgreSQLのWHERE句を徹底解説!初心者でもわかるSQLデータ抽出の基本
No.5
Java&Spring記事人気No5
Ruby
Rubyのfind/detect/find_indexを徹底解説!目的のデータを素早く探す方法
No.6
Java&Spring記事人気No6
Ruby
Rubyで比較演算子を完全解説!==・===・<=>・eql? の使い分け
No.7
Java&Spring記事人気No7
Ruby
Rubyのselect/reject/filterの使い方を完全解説!初心者向けの条件抽出レシピ
No.8
Java&Spring記事人気No8
データベース
PostgreSQLで順位付け!ROW_NUMBER関数の使い方を初心者向けに徹底解説