1
0

More than 1 year has passed since last update.

[Rails]アソシエーションについて

Posted at

初めに

この記事の対象者

railsでのプログラミングがはじめまして人向け

環境

・Macbook Air (Retina, 13-inch,2019)
・プロセッサ 1.6GHz デュアルコアIntel Core i5
・メモリ 8GB 2133 Mhz LPDDR3
・MacOS Big Sur バージョン 11.5.2

記事の目次

1)modelってなんだ?
2)modelですること[基本]
3)最後に

modelってなんだ?

主にデータベースへ情報を保存したり、保存する情報にルールをつけて制限する場所
→model名と同じテーブルへと情報が保存される
→(例えば)保存するデータは半角英数字であるべきとルールをつければ、一致できない場合保存不可能になる

modelですること[基本]

アソシエーションを組む(関連付け)

複数のテーブルがある場合、アソシエーションを組むことでお互いの情報を共有できるようになる!

belongs_toの場合(単対単)
belongs_to sampleer .png

(BモデルがAモデルに所属しているとき!)
(table:authorから見て)belongs_to: books
(table:addressから見て)belongs_to: usersx

has_oneの場合(単対単)
(例:通販サイト)
er_has_onesample.png

(BモデルがAモデルを一つだけもっているとき!)
(table:productsから見て)
belongs_to :user
has_one :payed_history

(table:usersから見て)
has_many :products
has_many :payed_histories
has_one :order

(table:ordersから見て)
belongs_to :payed_history

(table:payed_historyから見て)
belongs_to :product
belong_to :user
has_one :order

has_manyの場合(単対多)
注意:has_manyを使う場合、対象となるテーブルは複数形となる

(上記の通販サイトER図を参考に→user一人に対して多数の商品を持つの関連付け)
has_many :products

最後に

この他にもアソシエーションは存在するが、この3つをよく使っている。記事を書いて、ちょっとよくわからないところがあるきがするが一度投稿して時間をおいて理解を深めたら再度編集しようと思ってます。。

ココまで読んでくださいましてありがとうございます!

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