2011-06-03 47 views
1

如果我有兩個模式加入一個有很多兩個關係,可以說(球隊和球員),他們通過(陣容)聯合在視圖中,如何通過has_many關係獲取rails中的連接模型的id?

有沒有辦法在視圖中訪問聯接模型ID(lineups_id)在打電話之後:

@teams.players.each_with_index |players, index| do 
    players.lineups_id 
end 
+0

陣容是一個真正的實體還是隻是一個關聯實體,以促進多對多的關係?如果它是後者,它將不會有一個id,因爲它的主鍵將是兩個外鍵的組合。 – kroehre 2011-06-03 05:17:58

+0

是的,linueps是它自己的一種模式。 – 2011-06-03 05:20:13

回答

1

據我所知,沒有辦法做到這一點。但是通過重新安排你的代碼可以很容易地解決它。

@team.lineups.includes(:player).each_with_index |lineup, index| do 
    lineup.id 
    lineup.player 
end 

.includes(:player)實際上不是必要的,但它會改善預先加載玩家你的表現。

+0

.includes拋出和錯誤「未定義的方法」包括「,我在軌道2.3.11。是一個軌道3的方法?否則它的工作! – 2011-06-03 06:28:53

+0

是的,這是一個Rails 3的方法。 lineups.find(:all,:include =>:player).each_with_index'代替Rails 2.3。 – aNoble 2011-06-03 06:34:20

相關問題