ルーティングファイルの役割
RailsがユーザーのブラウザーからGETやPOSTなどのリクエストを受け取ると、まずルーティングファイルを参照する。
ルーティングファイルには、リクエストの種類、リクエストのターゲットURL、ターゲットURLに対応するコントローラーとアクションが記述されている。
その内容に従って必要なコントローラーが呼び出されて処理を行った後、ユーザー側へレンダリングされた内容が返される。
ファイルの位置とファイル名
ルーティングファイル(routes.rb)は、プロジェクト生成時にconfigディレクトリー下に生成される。
config/routes.rb
ファイルの内容
アクションを指定してコントローラーを生成すると、routes.rbにそのアクションへのルーティングを記述した1行が追加される。
たとえばコントローラーとしてdemo_contents、そのアクションとしてtop_pageを指定して生成すると以下のような内容でルーティングの記述が追加される。
| 1 2 3 4 | Rails.application.routes.draw do   get 'demo_contents/top_page'   # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end | 
一方、アクションを指定せずにコントローラーだけ指定して生成すると、route.rbへの追加は行われない。
| 1 2 3 | Rails.application.routes.draw do   # For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html end | 
基本的なルーティングの書き方
URL指定
以下の3つの記述は全て等価で、ブラウザーからURLをlocalhost:3000/demo_contents/top_pageと指定してGETリクエストしたとき、demo_contentsコントローラーのtop_pageアクションが実行される。
| 1 2 3 |   get 'demo_contents/top_page'   get 'demo_contents/top_page' => 'demo_contents#top_page'   get 'demo_contents/top_page', to: 'demo_contents#top_page' | 
2つ目と3つ目の記述法では、URLに他の表現を設定することが可能。
以下の例ではlocalhost:3000/fooを指定した時に、demo_contentsコントローラーのtop_pageアクションが実行される。
| 1 2 |   get 'foo', to: 'demo_contents#top_page'   get 'foo', controller: 'demo_contents', action: 'top_page' | 
ルートページの指定
ルートページとして特定のコントローラー・アクションを設定するときは、以下の様に記述する。
| 1 2 3 |   root 'demo_contents#top_page'   root :to  => 'demo_contents#top_page'   root to: 'demo_contents#top_page' | 
項設定すると、localhost:3000のようにブラウザーからリクエストするとdemo_contentsのtop_pageアクションが実行される。
基礎的なルーティング
rails routesによるルーティングの確認、to:によるURLの置き換え、as:による名前付けなどの基礎的な事項は以下にまとめた。
RESTful
今後