2015-11-19 213 views
0

,我需要解決兩個任務在我的Rails應用程序,我需要一些建議:Ruby on Rails的4單向協會

  1. 我有Person模型和汽車模型。一個人只能有一輛車。這意味着汽車總是有司機=人,但不是每個人都有汽車。所以我需要單向One to One。可以用rails來實現嗎?其實我需要汽車,我不需要belongs_to人
  2. 我有訂單和負載模型。在我的系統中有很多訂單,當我準備好交付這些訂單時,我將構建新的Load對象並將所有我想要交付的訂單放在那裏。因此,每個Load has_many命令但不是每個命令belongs_to Load。它是單向的一個一對多......此外,我不需要像order.load,我只需要load.orders

那麼,怎樣才能用我導軌實現它?

+0

爲什麼我們不需要belongs_to,只需定義它,因爲如果'car.person == nil'表示汽車不屬於任何人,否則車屬於一個人。這完全有道理,對嗎? –

+0

你是對的,那麼我不需要使用has_one?因爲可以有人沒有車的情況? –

+0

你還需要has_one,因爲person.car ==零,這意味着這個人沒有車。這很正常:)讓它變得容易。 has_one/belongs_to這裏意味着:一個人可能有1/0車,而一輛車可能屬於1/0人。這實際上是1-1關係 –

回答

0
class Person < ActiveRecord::Base 
    has_one :car 
end 

class Load < ActiveRecord::Base 
    has_many :orders 
end 

然後你可以調用person_instance.car或load_instance.orders。您必須在訂單上有load_id和汽車上的person_id