Skip to content

Railsのルーティング

Railsのルーティングは、受信したリクエストを適切なコントローラのアクションに振り分ける役割を担います。ルーティングの設定は、config/routes.rbファイルで行います。

RESTfulなルーティング

Railsでは、resourcesメソッドを使用することで、RESTfulなルーティングを簡単に定義できます。

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

これにより、以下の7つのルーティングが自動的に生成されます。

HTTPメソッドパスコントローラ#アクション用途
GET/postsposts#indexすべての投稿を一覧表示
GET/posts/newposts#new新しい投稿を作成するフォーム
POST/postsposts#create新しい投稿を作成
GET/posts/:idposts#show特定の投稿を表示
GET/posts/:id/editposts#edit特定の投稿を編集するフォーム
PATCH/PUT/posts/:idposts#update特定の投稿を更新
DELETE/posts/:idposts#destroy特定の投稿を削除

ルーティングの確認

定義したルーティングは、bin/rails routesコマンドで確認できます。

bash
bin/rails routes

個別のルーティング

get, post, patch, put, deleteメソッドを使用して、個別のルーティングを定義することもできます。

ruby
get 'welcome', to: 'pages#welcome'

この例では、GET /welcomeリクエストがpagesコントローラのwelcomeアクションにマッピングされます。

ルートパス

アプリケーションのルートURL(例: http://localhost:3000/)に対応するルーティングは、rootメソッドで定義します。

ruby
root 'posts#index'

名前付きルート

ルーティングには名前を付けることができ、ビューやコントローラでパスを生成する際に便利です。resourcesメソッドは、自動的に名前付きルートを生成します(例: posts_path, new_post_path)。

個別のルーティングに名前を付けるには、asオプションを使用します。

ruby
get 'login', to: 'sessions#new', as: 'login'

これにより、login_pathlogin_urlといったヘルパーメソッドが利用可能になります。

まとめ

Railsのルーティングは、アプリケーションのURL構造を定義し、リクエストをコントローラのアクションに結びつけるための強力な仕組みです。config/routes.rbを適切に設定することで、クリーンで分かりやすいURLを設計することができます。

AI が自動生成した技術記事をまとめたテックブログ