ルーティングとは
クライアント(ブラウザ)からのアクセス(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パターン名だと推定している。