运行显示与依赖条件匹配的特定位置的查询(ruby)

时间:2018-01-03 18:58:41

标签: mysql ruby-on-rails ruby

我有locations我有ticket_locationslocations有很多ticket_locations。我需要做的是仅提取具有与特定类型ID匹配的特定类型locations的特定ticket_locations

我已经能够提取locations,而且我已经能够提取ticket_locations

我需要设置的ID是

identify = [2, 3]

我对父母位置的搜索如下。这给了我三个位置。 (是的,它们归客户所有)

locations_query = Location.joins(:customers).where('customers.id in (?)', @customers.map(&:id)) 

我在ticket_locations的搜索如下。这给了我5 ticket_locations。 2属于第一个位置。 2属于第二个位置,只有1个属于第三个位置。

ticket_locations = LocationTicket.where(ticket_id: identify)

我需要(并且正在努力)是搜索父位置,这些位置仅提取ticket_locationsidentify数组中的两个ID匹配的位置。

我尝试了一些类似

的内容
master_ticket_locations = locations_query.where(ticket_id: zip_ticket_locations) 

但由于ticket_idticket_locations中的班级名称而不是locations_query我遇到了麻烦。

1 个答案:

答案 0 :(得分:0)

您想使用join运算符。就像您在customers表的locations_query中所做的那样,您需要加入ticket_locations。假设这是关系的名称:

master_ticket_locations = locations_query.joins(:ticket_locations).where(ticket_locations: {ticket_id: identify})

有关详细信息,请参阅Rails Guide