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.

.idと_id 違いについて ruby rails ルーティングのネスト 親子関係

Last updated at Posted at 2021-12-10

〇〇.idでしかうまくいかない時と〇〇_idでしかうまくいかない時ありますよね

一度は学習したんですがふと疑問に思い説明できなかったので自分の解釈で説明してみます。

まず基本は〇〇.idなど「.」を使うことで解決できます。

ではなぜ〇〇_idのような時が発生するんでしょうか?

それはルーティングのネストにあります。

ルーティングにおけるネスト(親子関係を示す)とは、コントローラーのルーティングの中に、別のコントローラーのルーティングを記述することです。
image.png

こうなると「 _ 」が発生してしまいます。

itemsの中にordersがいますよね、これで親がitems 子がorders になります。

なぜかというと、
image.png
大きくできないので虫眼鏡使ってください笑

真ん中にいますよね「 _ 」が!!!こいつのせいなんです。

ここで決められているんです!

この場合 :item_id としなければ値を取得できません。

つまりルーティングのネスト(親子関係)によって「 _ 」が生まれ

子が親のidを受け取るためには「 _ 」を使う必要があるのです。

じゃーネストなんかしないでいいじゃん

と思いますよね。
ルーティングをネストさせる一番の理由は、アソシエーション先のレコードのidを

paramsに追加してコントローラーに送るためです。

つまりどうアソシエーションするかで決まってしまってるんです。

偉そうにまとめましたが初めて見たような気持ちで復習してます。

間違っていたら何かこうした方がいいなど指摘してください。

0
0
1

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?