我有三个模型类别,项目类型和项目。用简单的英语我可以把我的要求说成:一个类别可以有零个或多个项目类型。一个项目类型必须只属于一个类别,并且可以有零个或多个项目。一个项目属于通过 itemtype.i 将它们关联到 itemtype 和类别,如下所示:
class Category < ActiveRecord::Base
has_many :item_types
has_many :items ,:through => item_types, :source => category
end
class ItemType < ActiveRecord::Base
has_many :items
end
class Item < ActiveRecord ::Base
belongs_to :item_type
end
现在我如何将一个项目与一个类别相关联。我的一个视图需要显示一个类别的所有项目。当我将其查询为
Category.joins(:item_types,:items).where("categories.id=?",1)
我得到下面的 sql
SELECT "categories".* FROM "categories" INNER JOIN "item_types" ON "item_t
ypes"."category_id" = "categories"."id" INNER JOIN "item_types"
"item_types_categories_join" ON "item_types_categories_join"."category_id" =
"categories"."id" INNER JOIN "categories" "items_categor
ies" ON "items_categories"."id" = "item_types_categories_join"."category_id" WHERE
(categories.id=1)
任何人都可以在这里帮助我。如何获取以下 sql
select * from categories
inner join item_type on categories.id=item_types.category_id
inner join items on item_types.id=items.item_type_id
where categories.id =1