【发布时间】:2018-05-23 21:11:28
【问题描述】:
我在查询 has_many 关联时遇到问题。上下文是商店。
class Store < ActiveRecord::Base
has_many :items
end
class Item < ActiveRecord::Base
belongs_to: store
end
存储表:
id name
1 Macys
2 Target
3 Dillards
物品表:
id store_id name
1 1 pants
2 1 shirt
3 2 pants
4 2 shirt
5 3 shirt
我正在尝试查询只销售衬衫的商店。所以我需要一个返回store 记录的查询,其中id 为3。
当我尝试这样做时
Store.includes(:items).where(
items: { name: %w(shirts)} ).references(:items)
它返回 store_ids 1、2 和 3(所有商店),因为它们都有衬衫。
【问题讨论】:
-
由于问题不清楚,请提供您查询的预期结果。
-
预期结果是 ID 为 3 (Dillards) 的商店记录,因为那是唯一一家只销售衬衫的商店。
#<Store id: 3, name: "Dillards">
标签: mysql ruby-on-rails activerecord associations has-many