我有一个示范城市,里面有很多房源。列表中有很多学校。我正在尝试查找城市中的所有school_id。
city.listings.joins(:schools).pluck(:name).uniq
按预期返回城市中所有学校的名称。
但是
city.listings.joins(:schools).pluck(:id).uniq
返回城市中所有列表的listing_id,而不是学校的id。
如何获取school_ids
?
答案 0 :(得分:2)
您可能会发现走另一条路更容易:
char*
并假设您需要根据这些学校来做某事,则可以避免完全加载ID,而只需继续编写查询即可:
School.where(listings: city.listings).pluck(:id)
答案 1 :(得分:1)
city.listings.joins(:schools).pluck('schools.id').uniq
将为您做到
原因
city.listings.joins(:schools).pluck(:id)
开始收益查询
select listings.id from listings inner join schools on .....
但是
city.listings.joins(:schools).pluck('school.id')
开始查询
select schools.id from listings inner join schools on .....