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 : ユーザーが複数の投稿を持つことを示す