2016-05-27 41 views
0

我很努力地找到解決這個基本問題的方法。谷歌條款也將不勝感激。鐵路協會第三大has_many belongs_to

我有三個表:鞋子,襪子和特點

的鞋有很多的襪子。襪子屬於鞋子。襪子有很多特徵。一種特質屬於襪子。

在我對鞋子的展示視圖中,對於給定的鞋子id:x我想展示屬於它的襪子以及屬於這些襪子的特徵。

class ShoesController 
    def show 
    @shoe = Shoe.find(params[:id]) 
    @socks= @shoe.socks 
    end 

使用此代碼,我可以鞋屬於鞋的襪子與id:x。但是,我怎樣才能找到屬於鞋子的襪子屬於id:x? 我認爲解決的辦法是這樣的:

@sock = Sock________ 
@trait = @sock.traits 

但我不知道該怎麼辦好這塊數據

回答

2

的搜索,獲得的數組:

@traits = @socks.map(&:traits).flatten 

要獲得一個ActiveRecord::Relation

@traits = Trait.where(sock: @socks) 
+0

謝謝,這是有道理的。我會在早上嘗試。你有什麼話可以用我的谷歌自己的話嗎?或者你認爲更直觀地把概念放在一起? – user3456978

+0

對於數組解決方案,你只需要搜索'ruby array'來獲得ruby數組幫助頁面http://docs.ruby-lang.org/en/2.0.0/Array.html,然後遍歷這些方法找到一個適合你的需求(畢竟襪子是一個數組,而你試圖從中提取某些東西)。對於ActiveRecord :: Relation,您需要通過導軌指南,以瞭解哪一個解決方案適用於導軌。在這種情況下,它是Active Record Query Interface指南:http://guides.rubyonrails.org/active_record_querying.html – Anand