LoginSignup
1
2

More than 3 years have passed since last update.

Railsにおけるルーティング

Last updated at Posted at 2020-05-11

ルーティングとは

クライアント(ブラウザ)からのアクセス(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など)を生成する

ルート定義の例

/config/route.rb
get '/login', to: 'sessions#new'

意味:
GETメソッドで、'/login'というURLに対してリクエストがきたら、SessionControllernewアクションを呼び出す。
また、'/login'というURLをlogin_pathというヘルパーメソッドで生成できるようにする。

URLパターン名をはっきりと定義している場所はないが、URLの内容からRailsが自動的にloginがURLパターン名だと推定している。

1
2
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2