Railsにおける**「ルーティング」は、クライアントからのリクエスト(URL)を適切なコントローラーのアクション**に結びつける重要な仕組みです。このルーティングの設定は、config/routes.rbファイルによって管理されます。
ルーティングの役割
MVCの「C(コントローラー)」において、ルーティングは次のような働きを担います:
-
ユーザーがアクセスしたURLとHTTPメソッド(GET, POSTなど)を解析し、
-
対応するコントローラーとアクションに処理を振り分ける。
config/routes.rb の基本構文
config/routes.rb の基本構文
このブロックの中で、様々なルーティングを設定します。
よく使われるルーティングの記述
1. 単一ルートの定義
-
GET /articles/indexというURLにアクセスすると、 -
ArticlesControllerのindexアクションが呼び出されます。
2. ルートパスの設定
-
アプリケーションのトップページ(
/)にアクセスしたときに -
HomeControllerのindexアクションを呼び出す設定です。
3. RESTfulなルーティング(resources)
resources)
これは、次のような7つのCRUDアクションに対応するルートを自動生成します:
| HTTPメソッド | パス | アクション | 用途 |
|---|---|---|---|
| GET | /articles | index | 一覧表示 |
| GET | /articles/:id | show | 詳細表示 |
| GET | /articles/new | new | 新規作成フォーム |
| POST | /articles | create | 作成処理 |
| GET | /articles/:id/edit | edit | 編集フォーム |
| PATCH/PUT | /articles/:id | update | 更新処理 |
| DELETE | /articles/:id | destroy | 削除処理 |
ルーティングにおけるオプションの指定
-
特定のアクションだけにルーティングを限定したい場合に使用します。
-
任意のパス名(ここでは
profile)を、任意のコントローラーとアクションに割り当てられます。
ネストされたリソース
-
articlesの中にcommentsがネストされており、次のようなルーティングが生成されます:-
/articles/:article_id/comments -
/articles/:article_id/comments/:id
-
これは、「ある記事に紐づくコメント」を扱う場合に有効です。
名前付きルート(path helper)
ルーティングを定義すると、自動的にヘルパーメソッドが生成されます:
-
articles_pathは、/articlesへのパスを表します。 -
名前付きルートを使うことで、URL変更に強いコードが書けます。
まとめ
-
config/routes.rbは、すべてのリクエストの振り分けを司る重要ファイルです。 -
resourcesを活用すれば、RESTfulなルーティングを簡潔に記述できます。 -
root,get,post,patchなどを組み合わせて、柔軟なURL設計が可能です。 -
適切にルーティングを設計することで、コントローラーのアクションとビューがスムーズに連携します。
必要に応じて、ルーティングを可読性よく構成することで、保守性の高いRailsアプリケーションが実現できます。
ChatGPT4o 生成日:2025/06/21