2013-12-21 122 views
1

我有兩個模型Type和Activity。類型has_many活動和活動has_many類型。爲此,我使用了has_many :through的東西。這是怎麼看起來像Ruby on rails多對多

活動

has_many :typeitems 
has_many :types, :through => :typeitem 

Typeitem

belongs_to :activity 
belongs_to :type 

類型

has_many :typeitems 
belongs_to :activity 

這感覺不對,雖然。我想查詢兩件事情

特定類型的
  1. 活動特定活動

  • 類型當我走進軌控制檯,輸入types.activity我得到了一個零,這意味着我將得到一個單一的對象。我應該將Type型號中的belongs_to更改爲has_many。但是,它會回到many-to-many。應該有辦法。

    我看了看文檔,發現has_and_belongs_to_many。我也看過這個

    如果你需要驗證,回調,或加入模型的額外屬性,你應該使用has_many:through。

    我現在沒有使用它,但我可能想在未來。

  • 回答

    0

    雙方都需要一個has_many :through

    活動

    has_many :typeitems 
    has_many :types, :through => :typeitem 
    

    Typeitem

    belongs_to :activity 
    belongs_to :type 
    

    類型

    has_many :typeitems 
    has_many :activities, through: :typeitems 
    
    +0

    是如何從'兩側has_many'此不同的無':T hrough'? – nupac