2013-10-28 72 views
0

我很困惑於施工,並嘗試了幾種方法來獲得以下情況爲我的測試工作。但我無法讓它工作。belongs_to和has_many難度很大

這就是我想要的: 當一個活動正在進行。可以將幾個客戶分配到該活動。因此創建訪問@oneActivity.clients@oneClient.activities

我應該在我的活動遷移或其他方式中放置references :client嗎?並且哪兩個在模型中應該有belongs_to而哪個has_many

+0

該信息可能無完整。你已經表示一個活動可以有很多客戶。客戶可以有很多活動嗎? – lurker

+0

我說不。但是,是的。客戶有很多活動。 – CaptainCarl

+0

我認爲客戶有很多活動,正如你所說的一項活動屬於許多客戶...所以使用多對多的關係 – LHH

回答

1

以及描述如果一個客戶有很多活動和活動有許多客戶,那麼我建議你看一看has_and_belongs_to_many relationship.in這種情況下

在客戶端模式,你將不得不

has_and_belongs_to_many :activities 

,並在你的活動模式,你將不得不

has_and_belongs_to_many :clients 

這樣你可以做你在你的問題

您可以檢查出從軌關係描述的動作指導在這裏:http://guides.rubyonrails.org/association_basics.html#the-has-and-belongs-to-many-association

+0

我其實已經這樣。有人告訴我以其他方式去做。因爲當我嘗試測試東西時,它說'未定義的方法'client ='for <'。 – CaptainCarl

+0

好吧,如果你發佈你的測試會更好,但如果你調用activity.client會發生這種情況。你必須像這樣調用它:activity.clients。它應該是複數,因爲它是一個多對多的關係 – Brock90

+0

啊,修正了這一點。我在我的活動工廠中使用客戶端{[FactoryGirl.create(:client)]}'而不是'association:client'。 你能用這兩種方式?因爲如果我在客戶端工廠添加相同的活動,它將變成無限循環。 – CaptainCarl

0
在您的客戶端模型

你會

has_and_belongs_to_many :activities 

並在您的活動模型中,您將有

has_and_belongs_to_may :clients 
+0

爲什麼downvote ??? – LHH