Ruby on Railsのルーティングを書く順番

スポンサーリンク

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がついているルーティングよりも上に書くようにします。

コメント

タイトルとURLをコピーしました