RubyOnRailsのルーティングを書く順番

RubyOnRailsのルーディング

RubyOnRailsのルーティングはブラウザのURLを判断してコントローラーとそれに対応したアクションを呼び出します。さらにアクションはアクションに対応したhtmlファイルを呼び出します。

RubyOnRailsのルーティングはただひとつだけ注意点があり、:idをつかったルーティングより上に書くようにします:idはなににでもマッチしてまうので注意が必要です。

たとえば  get “posts/:id” => “posts/#show” というルーティングがあった場合、
 get “posts/index” => “posts/index” は:idをつかっているよりルーティングよりも上に書く必要があります。

:idはなににでもマッチしてしまうのでURLでアクセスしたときにエラーがおきてしまいます。

ルーティングを書く順番

この画像のように get “posts/index” => “posts#index”は :id がついているものより上の行に書く必要があります。ここからもわかるようにRubyOnRailsのルーティングを書く順番は:idがついたルーティングに注意すればよいことがわかります。

ルーティングは:idがついているルーティングに合致しそうなURLがある場合は :idがついているルーティングよりも上に書くようにします。