ルーティングとは
クライアント(ブラウザ)からのアクセス(URLとHTTPメソッド)を受けて適切なコントローラのアクションへと誘導する仕組み。
ルーティングの役割
次に挙げる本質的に異なる2つの構造の連携を担っている。
1.URLやHTTPメソッドで表現するインターフェイスとしての構造
2.Rubyのプログラミング上の合理性で構造化したコントローラ・アクションの構造
それにもかかわらずroute.rbには簡素にしか書かれていないので、中身が良くわからず難しく感じる。
ルートを構成する要素
ルーティングはリクエストをアクションへと案内する「ルート」の集まりだと言える。
その「ルート」を構成するのは次の5つである。
・HTTPメソッド(GET,POST,PATCH,PUT,DELETE)
・URLパターン(/tasks, /tasks/:id)
・URLパターンの名前(new_task, tasks)
・コントローラ(tasks)
・アクション(index)
ルートの役割
二つの役割がある。
1.HTTPメソッドとURLからアクションを呼び出す(ルーティングと同じ)
2.URLから、URLを簡単に生成するためのヘルパーメソッド(tasks_pathなど)を生成する
ルート定義の例
get '/login', to: 'sessions#new'
意味:
GETメソッドで、'/login'というURLに対してリクエストがきたら、SessionControllerのnewアクションを呼び出す。
また、'/login'というURLをlogin_pathというヘルパーメソッドで生成できるようにする。
URLパターン名をはっきりと定義している場所はないが、URLの内容からRailsが自動的にloginがURLパターン名だと推定している。