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

[Rails5] -Routingネストとアソシエーションについて-

Posted at

#はじめに

webアプリケーション作成途中何気なく使っていた

Routingネスト

と、

アソシエーション

の違いについて理解を深める為に纏めて見ました。

#1. Routingネストについて
一言で言うと

・コントローラのルーティングの記述の中に、別のコントローラへのルーティングを記述する事

例えば、

resources :tweets do
  resources :comments, only: [:create]
end

と言う風にすれば、

『tweets/:id/comments』

の様なURL階層を設計することができる

#2. アソシエーションについて
定義は様々あると思いますが、

モデル間の関連付け(主従関係)
テーブル間のリレーションシップをモデルの上の関係として操作できるようにする仕組み

と言った所でしょうか。
用途としては関連付けたい2つのテーブルをhas_manybelongs_toで関連付けます

例えば
「tweet」
「comment」
二つのテーブルがあったとして
「一つのtweetは複数のcommentを持っており、commentは1つのtweetを持っている」
といった様な場合、

tweet.rb
class Tweet < ApplicationRecord
    has_many :comment
end
comment.rb
class Comment < ApplicationRecord
    belongs_to :tweet
end

とすればアソシエーションの関連付けが出来る。

#3. 疑問に感じていた事

個人的にずっと疑問に感じていたのは、

アソシエーションしているのにRoutingネストって必要なのか?

って事です。ただ、

アソシエーション➡︎モデル間の関連付け
Routingネスト→URL設計(関係性のある紐つけ)

って言う意味をよく理解すればそんな疑問自体おかしい事に気付けました。

まとめ

閲覧頂きありがとうございます。

誤った認識等ございましたらご指摘お願いいたします。
またコロナと戦う全国の医療関係者の皆様に感謝を申し上げます。

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?