0%

Ruby on Rails 網站開發 練習 - ActiveRecord - 資料表關連 part 2 (關聯性)(一對一)

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 來看看

    回到VScode store.rb 將products改成單數product

    然後再開啟 rails console來看看,會發現這時候找不到對應的商品。

參考來源:為你自己學 Ruby on Rails (https://railsbook.tw/)