0

这是我的模型关系:

  • Category has_many Subcategories

  • Subcategory belongs_to CategorySubcategories有一个category_id字段)

  • Subcategory has_many items

  • Item belongs_to SubcategoryItems有一个subcategory_id字段)

我想在类别的显示视图中列出属于某个类别的子类别的所有项目。

例如,在具有餐厅、快餐和送货子类别的食品类别中。我想在食物类别的显示视图中显示 3 个子类别中的所有项目。

我有条件使这成为可能:

<%@items = Item.find(:all, :limit=> 10, :conditions {:subcategory_id =>  }, :order=>"created_at ASC")%>
        <%@items .each do |items|%>
Items info shown here
<% end %>

我不知道我是否必须通过条件、if语句或辅助方法来实现。

4

1 回答 1

2

这就是我解决它的方法。

我将 subcategory.category_id 和 category.id 之间的比较保存在变量 @subcategory_id

<%@subcategory_id = Subcategory.find(:all, :conditions => {:category_id => @category.id}, :order=>"created_at ASC")%>

然后我使用该变量在项目列表的查询中创建条件

<%@lastitems= Item.find(:all, :conditions => {:subcategory_id => @subcategory_id}, :order=>"created_at ASC")%>
        <%@lastitems.each do |lastitem|%>


items info goes here

<%end%>

谢谢。

于 2013-01-22T15:48:38.503 回答