它實際上不會得到同樣的結果...
第一招:
class Customer
belongs_to :user
end
class User
has_many :customers
end
將設置一個USER_ID在客戶和用戶中沒有任何內容。這意味着客戶只能與一個用戶相關聯。在反思的方面,你可以做這樣的東西:
user = User.create(name: 'John Snow')
customer = user.customers.build(name: 'Tywin Lannister')
customer.save
user.inspect
=> #<User id: 8, name: "John Snow">
customer.inspect
=> #<Customer id: 12, user_id: 8, name: "Tywin Lannister">
user.customers.inspect
=> [#<Customer id: 12, user_id: 8, name: "Tywin Lannister">]
customer.user
=> #<User id: 8, name: "John Snow">
第二個:
class Customer
has_one :user
end
class User
belongs_to :customer
end
都會將用戶CUSTOMER_ID。你可以做這樣的東西:
你的情況
customer = Customer.create(name: 'Tywin Lannister')
user = customer.build_user(name: 'John Snow')
user.inspect
=> #<User id: 8, customer_id: 12, name: "John Snow">
customer.inspect
=> #<Customer id: 12, name: "Tywin Lannister">
user.customer
=> #<Customer id: 12, name: "Tywin Lannister">
customer.user
=> #<User id: 8, customer_id: 12, name: "John Snow">
所以
那麼你需要的第一個。
從文檔:
甲belongs_to的關聯建立與另一個模型,使得該模型聲明的每個實例「屬於」其他模型的一個實例的一對一的連接。
has_one關聯也建立與另一個模型的一對一連接,但具有稍微不同的語義(和後果)。該關聯指示模型的每個實例都包含或擁有另一個模型的一個實例。
非常好的工作,謝謝你。 – 2013-05-10 23:39:35
其實我正在考慮用這個作爲提醒自己:)不知道爲什麼你被告知使用第二個雖然Oo – Raindal 2013-05-10 23:40:31
不知道,但讓我困惑了2天。但是你發佈後再次相信我的解決方案:) – 2013-05-11 00:04:52