0
1

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 3 years have passed since last update.

ルーティングのネストについて

Posted at

#目次
①ネストをする意味
②ネストの記述方法
③ネストしない場合とする場合
④まとめ

##①ネストをする意味
アソシエーション先のid情報を取得するためにネストをする。

##②ネストの記述方法
以下のように親のコントローラに対してdoとendで挟んで記述をすると、ネストがされている状態になる。

Rails.application.routes.draw do
  resources :親となるコントローラー do
    resources :子となるコントローラー          
  end
end

##③ネストしない場合とする場合

ネストなし
Rails.application.routes.draw do
  resources :images
  resources :comments, only: :create
end

ターミナル
Prefix   Verb    URI Pattern           Controller#Action
comments POST   /comments(.:format)   comments#create

ネストなしの場合、ターミナルにてrails routesをすると上記のように表示される。ではネストがある場合どうなるのだろうか?

ネストあり
Rails.application.routes.draw do
  resources :images do
    resources :comments, only: :create
  end
end
ターミナル
Prefix         Verb    URI Pattern                            Controller#Action
image_comments POST   /images/:tweet_id/comments(.:format)   comments#create

ネストありの場合、ターミナルにてrails routesをすると上記のように表示される。ネストした場合は、コメントの投稿先のidがあるのに対して、ネストしない場合は、どの画像に対してコメントかわからなくなってしまう。

##まとめ
ネストをすることで親のidの情報を取得することができる。

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

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?