rails - novel-suzukikeisuke/study GitHub Wiki

routes

  • 役割: URLに対応するアクションを定義。リクエストがどのコントローラとアクションに送られるかを決定する
  • 例 : ユーザーが/postsというURLにアクセスしたときにPostsControllerのindexアクションが実行される
Rails.application.routes.draw do
  resources :posts
end
- /posts(indexアクション)、/posts/:id(showアクション)などのルートが自動的に設定される
- resources :posts : 7つのアクション(index, show, new, edit, create, update, destroy)をルートとして定義してくれる
  - index : GET / posts -> posts#index
  - update : PATCH/PUT /posts -> posts#update

contoroller

  • 役割: ユーザーからのリクエストを受け取り、適切なモデルに命令を出してデータを取得。リクエストに応じて何をするかを定義する中心的な役割
  • 例: ユーザーが「すべての投稿を表示する」リクエストを送信すると、コントローラはモデルを使用して投稿データを取得し、結果を返す
class PostsController < ApplicationController
  def index
    @posts = Post.all
  end

  def show
    @post = Post.find(params[:id])
  end
end
- コントローラー名 : PostsController
- index : すべての投稿を取得するアクション
- show : 特定の投稿を表示するアクション

model

  • 役割: データやビジネスロジックを管理。モデルはデータベースとのやり取りを担当し、データの検証や関係性の管理を行う
  • 例: アプリケーションがユーザー情報を扱う場合、Userというモデルを作成、ユーザーに関連するデータベースの操作(新規登録、更新、削除など)を管理
class User < ApplicationRecord
  validates :name, presence: true
  has_many :posts
end
- Userモデルがデータベース内のユーザーデータを管理
- validates : nameが必須項目である
- has_many :posts : ユーザーが複数の投稿を持つことを示す