2013-05-04 72 views
0

我使用roo分析了一个.xls文件,并将数据存储在关系数据库中。现在我想再次展示这些线条,就像之前的.xls一样。那就是,我必须加入3个表格。我如何在Rails中使用活动记录方法来做到这一点?在Rails中加入表格

假设我有3个表格:Category,SubcategoryItem。我需要显示这3个表格中的信息。我在模型中做了类似的事情:category has_many subcategorysubcategory has_many items(当然还有相应的belongs_to)。我如何迭代每个category并获得subcategoryitems在活动记录方式?

+0

您可以使用['joins'(http://guides.rubyonrails.org/active_record_querying.html#joining-tables)。 – Mischa 2013-05-04 02:56:25

回答

0
categories= Category.all 

sub_categories = categories.collect{|category| category.subcategories }.compact 

items = sub_categories.collect{|sub_cat| sub_cat.items}.compact 

这样的事情应该工作

0

要检索类别,子类别和项目使用的活动记录:

@categories = Category.includes(:subcategories => :items) 

这将渴望负荷的关联,避免N + 1个选择问题。

然后你可以遍历他们像往常一样,用each

@categories.each do |c| 
    c.subcategories.each do |s| 
    s.items.each do |i| 
     # do something with item i 
    end 
    end 
end