私は3つのモデルCategory、ItemType、Item.Inを持っています。平易な英語で私は私の要件を次のように置くことができます:カテゴリは0個以上のアイテムタイプを持つことができます.ItemTypeは単一のカテゴリのみに属し、0個以上のアイテムを持つことができます. itemtype と 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
アイテムをカテゴリに関連付けるにはどうすればよいですか。私のビューの 1 つは、カテゴリのすべてのアイテムを表示する必要があります。私がそれをクエリすると
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