我很困惑於施工,並嘗試了幾種方法來獲得以下情況爲我的測試工作。但我無法讓它工作。belongs_to和has_many難度很大
這就是我想要的: 當一個活動正在進行。可以將幾個客戶分配到該活動。因此創建訪問@oneActivity.clients
或@oneClient.activities
。
我應該在我的活動遷移或其他方式中放置references :client
嗎?並且哪兩個在模型中應該有belongs_to
而哪個has_many
?
我很困惑於施工,並嘗試了幾種方法來獲得以下情況爲我的測試工作。但我無法讓它工作。belongs_to和has_many難度很大
這就是我想要的: 當一個活動正在進行。可以將幾個客戶分配到該活動。因此創建訪問@oneActivity.clients
或@oneClient.activities
。
我應該在我的活動遷移或其他方式中放置references :client
嗎?並且哪兩個在模型中應該有belongs_to
而哪個has_many
?
以及描述如果一個客戶有很多活動和活動有許多客戶,那麼我建議你看一看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
我其實已經這樣。有人告訴我以其他方式去做。因爲當我嘗試測試東西時,它說'未定義的方法'client ='for <
好吧,如果你發佈你的測試會更好,但如果你調用activity.client會發生這種情況。你必須像這樣調用它:activity.clients。它應該是複數,因爲它是一個多對多的關係 – Brock90
啊,修正了這一點。我在我的活動工廠中使用客戶端{[FactoryGirl.create(:client)]}'而不是'association:client'。 你能用這兩種方式?因爲如果我在客戶端工廠添加相同的活動,它將變成無限循環。 – CaptainCarl
我想,從你所描述的,你需要一個多對多的關係。客戶可以有許多活動,活動可以按照您的描述分配給多個客戶。
建立這樣的關係在以下問題When should one use a "has_many :through" relation in Rails?
你會
has_and_belongs_to_many :activities
並在您的活動模型中,您將有
has_and_belongs_to_may :clients
爲什麼downvote ??? – LHH
該信息可能無完整。你已經表示一個活動可以有很多客戶。客戶可以有很多活動嗎? – lurker
我說不。但是,是的。客戶有很多活動。 – CaptainCarl
我認爲客戶有很多活動,正如你所說的一項活動屬於許多客戶...所以使用多對多的關係 – LHH