Model 之間的關連,主要有「一對一」、「一對多」及「多對多」這三種。以下用餐廳的例子舉例:
關連:一對一
這裡舉的例子是一位使用者可以開一家飲料店。
第一步,我們先建立 Model:
Model 名稱 User。
Model 名稱 DrinkStore。
各別使用 Rails 的 Model 產生器來產生 User & DrinkStore Model,請在終端機輸入:rails g model User
rails g model DrinkStore
user_id 這個欄位的型態是數字,主要的用途是用來對應到 User Model 的 id 欄位,又稱它叫外部鍵 FK。要特別注意的是並不是加上這個之後就會有關連!
第二步,在兩個 Model 之間設定關聯:
在 User & DrinkStore,分別加上 has_one 與 belongs_to 語法。
# 檔案:app/models/user.rb
class User < ApplicationRecord
has_one :drink_store
end
# 檔案:app/models/drink_store.rb
class DrinkStore < ApplicationRecord
belongs_to :user
end
這時候以 User 的角度來看,就會有以下方法可以用:
這時候以 DrinkStore 的角度來看,就會有以下方法可以用: