【问题标题】:How can i list all Items that belongs to all the Subcategories of a certain Category? ROR如何列出属于某个类别的所有子类别的所有项目?罗尔
【发布时间】:2013-01-21 18:27:46
【问题描述】:

这是我的模型关系:

  • 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 语句或辅助方法。

【问题讨论】:

  • 你使用的是什么版本的 Rails?

标签: ruby-on-rails filter relationship categories


【解决方案1】:

这就是我解决它的方法。

我将 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%>

谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多