0

ここに私のモデルの関係があります:

  • 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条件、ステートメント、またはヘルパー メソッドのいずれで処理する必要があるかはわかりません。

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 に答える