0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Railsでよく使いそうなルーティングのやり方

Last updated at Posted at 2023-06-19

概要

Railsでよく使いそうなルーティングのやり方について記述します。

基本的なルーティング

ルーティングはconfig/routes.rbファイルで定義します。最も基本的な形式は以下の通りです。

get 'products' => 'products#index'

これはHTTP GETリクエストをproductsパスに送ると、ProductsControllerindexアクションが呼び出されることを意味します。

別の書き方としてto:を用いた表現もあり、次のように書くことも可能です。

get 'products', to: 'products#index'

リソースルーティング

RESTfulなリソースに対する標準的なCRUD操作を設定するための短縮形です。

resources :products

この一行で、以下の7つのルーティングが自動的に生成されます。

  • index: GET /products
  • show: GET /products/:id
  • new: GET /products/new
  • create: POST /products
  • edit: GET /products/:id/edit
  • update: PATCH/PUT /products/:id
  • destroy: DELETE /products/:id

ネストしたリソース

あるリソースが他のリソースに従属する場合、リソースをネストすることができます。

resources :products do
  resources :comments
end

この場合、commentsproductsにネストされ、コメントを一意に特定するためにはその親となるプロダクトのIDが必要になります。

名前付きルート

特定のルートに名前を付けることができます。これにより、ビューやコントローラ内でそのルートを簡単に参照することができます。

get 'products/:id/purchase' => 'products#purchase', as: 'purchase'

この場合、purchase_pathというヘルパーメソッドが自動的に生成され、ビュー内で使用することができます。

to:を用いた書き方であれば、次のようになります。

get 'products/:id/purchase', to: 'products#purchase', as: 'purchase'

ルートの制約

ルートには制約を設けることが可能です。例えば、パラメータに特定の形式を強制することができます。

get 'products/:id' => 'products#show', id: /\d+/

この場合、:idパラメータは数値でなければならないという制約が設けられています。

以上がRuby on Railsでよく使うルーティングの基本知識になります。適切なルーティング設定により、アプリケーションの動作を効率的にコントロールすることができます。

参考

0
0
0

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?