以下是我的模特关系:
Category has_many Subcategories
Subcategory belongs_to Category
(Subcategories
有一个category_id
字段)
Subcategory has_many items
Item belongs_to Subcategory
(Items
有一个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
语句或辅助方法来完成它。
答案 0 :(得分:2)
这就是我如何解决它。
我在变量@subcategory_id中保存了subcategory.category_id和category.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%>
感谢。