DAY12 resourcesメソッド

TOKHEE·2024년 3월 29일
  • アプリケーションのルーティングを設定する役割
  • REST(Representational State Transfer)アーキテクチャスタイルに従って、リソースベースのルートを簡単に生成できる
  • RESTアーキテクチャでは、リソース(例:ユーザー、記事など)に対して標準的なHTTPメソッド(GET, POST, PUT/PATCH, DELETE)を使用してCRUD(Create, Read, Update, Delete)作業を行う

resources メソッドの動作方法

  • resources メソッドは、特定のリソースに対する標準的なCRUDルートを自動的に生成する

  • 例) articles リソースに対するルートを設定する場合、config/routes.rbファイルでの設定
Rails.application.routes.draw do
  resources :articles
end
  • articles リソースに対して、以下の7つの異なるルートを生成
  1. Index (GET /articles): リソースのすべてのインスタンスをリストアップ
  2. New (GET /articles/new): 新しいリソースインスタンスを作成するためのフォームを表示
  3. Create (POST /articles): 新しいリソースインスタンスを作成
  4. Show (GET /articles/:id): 特定のリソースインスタンスを表示
  5. Edit (GET /articles/:id/edit): 特定のリソースインスタンスを編集するためのフォームを表示
  6. Update (PATCH/PUT /articles/:id): 特定のリソースインスタンスを更新
  7. Destroy (DELETE /articles/:id): 特定のリソースインスタンスを削除
  • ルートは、該当するリソースに対する特定のアクションをArticlesControllerで処理するように指定
  • 例) GET /articlesのリクエストは、ArticlesControllerindexアクションをトリガーする。

選択的使用とカスタマイズ

  • 必要なすべてのCRUDアクションが不要な場合、onlyまたはexceptオプションを使用
    => 必要なルートのみを選択的に生成するか、特定のルートを除外可能

  • neweditルートを除くすべてのアクションに対するルートのみを生成
resources :articles, except: [:new, :edit]

-showindexアクションに対するルートのみが必要な場合

resources :articles, only: [:show, :index]

ネストされたリソース

  • resourcesを使用して、リソース間の関係を表現するネストされたルートも生成可能

  • articleが複数のcommentsを持つ場合
resources :articles do
  resources :comments
end

この設定は、commentsリソースに対するルートを生成する際に、各commentが属するarticleのIDをURLパスに含める

  • 特定の記事に対する新しいコメントを作成するためのパス
    : GET /articles/:article_id/comments/new

0개의 댓글