ActiveRecord - 資料表關連 part 2 (關聯性)(一對一)
假設我們現在有一個書店系統


另外開一個新專案MyStore
先使用終端機輸入相關的rails 指令產生對應的model

has_one(它其實是類別方法)
打開文字編輯器VScode,進到app/models/owner.rb 編輯裡面內容
接著打開 reails console 來建議一個變數 o1(歐一)並給它一個名字 O1(大寫歐一)
這裡也新增一個商店命名s1,但是會發現錯誤,是正常的。
可以透過查看錯誤訊息知道,它必須有一個owner,我們還沒有指定給它
所以我們可以換個方式





答案:
- build → 會直接寫到記憶體裡面,但是要透過
.save才會存進去資料庫 - create → 會直接寫進去資料庫
belons_to(它其實是類別方法)



答案:
- 沒有同時設定不會怎麼樣,只是只能從
owner.rb查詢store.rb。但是不能從store.rb反查owner.rb。 - xxx_id不一定要叫這個名字,這只是個慣例。
完整名稱:

如果今天是別人寫的資料庫,但不是用Ruby寫的我們就會需要使用這樣的寫法去讀取外部id。
has_many(它其實是類別方法)





答案:
- has_many方法後面不用符號改用字串不會發什麼事。
- 就來建立一個看看

打開VScode
在store.rb新增has_many :products
打開rails console來看看
回到VScodestore.rb將products改成單數product
然後再開啟rails console來看看,會發現這時候找不到對應的商品。
參考來源:為你自己學 Ruby on Rails (https://railsbook.tw/)





