Academic-cap Rails Learning

3. 🗺️ 主要ディレクトリの鳥瞰

🎯 この項の目的


Railsは「MVC+周辺ファイル」で構成されています。

つまり、Railsアプリ全体は大きな“街”のようなもので、

モデル・コントローラ・ビューの3人が、それぞれの建物(フォルダ)で働いていると思えばOKです🌆


Railsを動かす上で、最初に触る場所を“地図”でつかみましょう。




🧭 1. Railsの全体構造をざっくり見てみよう


Railsアプリを作ると、フォルダ構成はだいたいこんな感じになります👇

my_app/
 ├─ app/
 │   ├─ models/        ← データ(Model)
 │   ├─ controllers/   ← 司令塔(Controller)
 │   ├─ views/         ← 見た目(View)
 │   └─ helpers/       ← ビューを助けるメソッド(後で出てくる)
 │
 ├─ config/            ← 設定ファイルたち(ルーティングなど)
 │   └─ routes.rb      ← URLの入り口を管理
 │
 ├─ db/                ← データベース関連(migration, schemaなど)
 │
 ├─ Gemfile            ← 使うライブラリの一覧
 └─ README.md          ← プロジェクトの説明書

たくさんのフォルダがありますが、最初のうちは

💡 「app/ と config/ と db/」の3つだけを意識すれば十分です。




🧱 2. app/models(モデル)=「データの倉庫」


ここには「データを扱うクラス(モデル)」が入っています。


📦 例:投稿を管理する Post モデル

# app/models/post.rb
class Post < ApplicationRecord
  validates :title, presence: true
end

💬 役割:


  • データベースと直接やり取りする(保存・検索・削除)
  • データのルールを決める(バリデーション)
  • 名前はテーブル名と自動で対応する(Post ⇄ posts)


💡 初心者のポイント:

モデルファイルは**“1つのテーブル=1つのモデル”**で考えると覚えやすいです。




🎮 3. app/controllers(コントローラ)=「司令塔」


ここにはユーザーの操作を受けて、次に何をするか判断する役割が書かれています。


🎯 例:投稿一覧を表示するコントローラ

# app/controllers/posts_controller.rb
class PostsController < ApplicationController
  def index
    @posts = Post.all
  end
end

💬 役割:


  • 「どの画面を見たいのか」を受け取り、モデルとビューをつなぐ
  • def index, def show のようなアクションを定義する
  • ビュー(HTML)にデータを渡す


💡 初心者のポイント:

コントローラ名は基本的に複数形(例:PostsController)。

アクション名(index, new, create…)でビューが自動対応します。




🎨 4. app/views(ビュー)=「見た目担当」


ここには**画面を表示するファイル(.html.erb)**が入っています。


🪄 例:投稿一覧ページ

<!-- app/views/posts/index.html.erb -->
<h1>投稿一覧</h1>

<% @posts.each do |post| %>
  <p><%= post.title %></p>
<% end %>

💬 役割:


  • HTMLとRubyを組み合わせて画面を表示する
  • コントローラから渡された変数(例:@posts)を使う
  • フォルダ構成は app/views/コントローラ名/アクション名.html.erb


💡 初心者のポイント:

.erb の中で <%= %> を使うと、Rubyの値をHTMLの中に埋め込めます!




🗺️ 5. config/routes.rb(ルーティング)=「入り口の案内係」


このファイルは、URL(住所)とコントローラの対応関係を管理します。


📍 例:投稿一覧を表示するルート

# config/routes.rb
Rails.application.routes.draw do
  resources :posts
end

💬 役割:


  • /posts にアクセスがあったら PostsController#index を呼ぶ
  • /posts/new → PostsController#new のように自動でルールを作ってくれる
  • resources :○○ で一気に7つの基本ルートを生成


💡 初心者のポイント:

ルーティングは「ブラウザからのリクエストが最初に通る場所」。

まずここで“どのコントローラを呼ぶか”が決まります。




🧾 6. dbフォルダ(データベースの心臓部)


データを保存するための設定や、テーブルの構造が入っています。


📁 よく使うファイル:



💡 初心者のポイント:

Railsでは、データベース操作もコードで行います。

rails db:migrate コマンドで、マイグレーションが実行されます。




🎯 7. 最初に触る場所を覚えよう


Railsアプリにはたくさんのファイルがありますが、

初学者が最初に触るのはこの5つ!👇




💡 この5つを理解すれば、Railsの全体像の8割はつかめます!




🌱 まとめ




次の章に行く前に...

この章で学んだ知識を覚えよう!

この章で学んだことを、Xでアウトプットしましょう ✨

対応するクイズに挑戦して理解を定着させましょう💡

クイズを解く