Rails

【Rails基礎】URLを自在にカスタマイズ!ルーティングに名前を指定する方法を解説

Rails

 

今回はルーティングに名前を指定する方法を解説したいと思います。URLや飛び先を自由にカスタマイズできるので、ぜひマスターして実装の幅を広げていきましょう。

rails routesの使い方にも関わってくるので、忘れている方はぜひ復習しておいてください。
Rails
【Rails基礎】ルーティングを確認できる「rails routesコマンド」の使い方を初心者向けに解説ルーティングが正しく設定されているか、どのようにコントローラーに処理を渡しているのかが確認できるコマンド「rake routes」について簡単に解説しています。resourcesメソッドを使用した時や、リンクを作成したい時に活躍するコマンドなので、ぜひこの機会に整理しておきましょう。...

URI Patternの指定

まずはURI Patternの指定方法から見ていきましょう。URI Patternとはルーティングのパスを指し、そのパスにアクセスされた際、特定のコントローラのアクションを動かします。

↓ URI Patternはここ

URI Pattern

 

URI Patternをカスタマイズするには、routes.rbのHTTPメソッド以下に指定したいパスを記述します。記述例を見てみましょう。

routes.rbを以下のように記述しました。

Rails.application.routes.draw do
  get "facebook", to: 'users/registrations#select', as: :select_registration
end

 

すると、以下のようにURI Patternがfacebookに置き換わります。

URI Patternの変更

 

このようにroutes.rbのHTTPメソッド以下(get ~、post ~)に指定したいパスを記述すると、URI Patternをカスタマイズすることができます。

Prefixの指定

続いてPrefixをカスタマイズしてみましょう。Prefixとはパスが入った変数のようなものです。Prefix_pathと記述することで、URI Patternと同じ扱いになります。

↓ Prefixはここ

Prefix

 

Prefixをカスタマイズするには、roites.rbで「as: :~」と記述します。同様に記述例を見てみましょう。

routes.rbを以下のように編集しました。

Rails.application.routes.draw do
  get "facebook", to: 'users/registrations#select', as: :google
end

 

すると、以下のようにPrefixがGoogleに置き換わっていると思います。

Prefixの変更

 

このようにroutes.rbのas以下に指定したい文字列を記述すると、Prefixをカスタマイズすることができます。

Controller#Actionの指定

最後にController#Actionの指定方法を見ていきます。Controller#Actionとは、ここでいう/facebookというパス(もしくはgoogle_path)にアクセスした際に、どのコントローラーのアクションを動かすのかということ表しています。

Controller#Actionを指定するには、routes.rbのto以下を編集することで可能になります。記述例を同様に見ていきましょう。

Rails.application.routes.draw do
  get "facebook", to: 'platform#yahoo', as: :google
end

 

するとrails routesの結果は以下のようになります。

Controller#Actionの編集
google、facebook、yahooと変な感じになりましたが、あくまで記述例なので気にしないでください。

 

このようにroutes.rbのto以下を編集することで、Controller#Actionをカスタマイズすることができます。

まとめ

  • routes.rbのHTTPメソッド以下に指定したいパスを記述すると、URI Patternをカスタマイズすることができる
  • routes.rbのas以下に指定したい文字列を記述すると、Prefixをカスタマイズすることができる
  • routes.rbのto以下を編集することで、Controller#Actionをカスタマイズすることができる

参考

Railsガイド: https://railsguides.jp/routing.html

 

 

今回はルーティングに名前を指定する方法を解説しました。好きな文字列をパスに指定することができるので、実装の幅が広がりそうですね。この機会にrails routesの使い方や、routes.rbの記述方法なども併せて復習しておいてください。