2016-09-21 67 views
-2

有沒有一個更好的方法來在Rails中做到這一點?Rails:鏈接每個...語句

tvs.each do |tv| 
    tv.boxes.each do |b| 
    b.templates.each do |t| 
     puts t.name 
    end 
    end 
end 

我只是想通過t.name無三線在它之前each語句循環。

+0

中有什麼'tvs'變量?和'tv'變量等等...... –

+0

它是ActiveRecord對象的集合。 –

+0

你嘗試過什麼嗎? –

回答

2

您可以使用此將做同樣的事情

tvs.flat_map(&:boxes).flat_map(&:templates).map(&:name) 
1

我想有數據庫表嗎?可以使用joins。我不知道你的表和關係的準確名字,但你需要的東西是這樣的:

Template.joins(box: :tv).where(tvs: {id: something}).pluck(:name)