Rails .joins查询多个关联

时间:2013-01-15 02:51:12

标签: sql ruby-on-rails-3 postgresql activerecord

我的查询符合预期:

@dog.listings.joins(:address_country).merge(Country.where(permalink: 'uk'))

此查询为我提供了国家/地区匹配'uk'的列表(列出has_one:address_country,这是Country模型中的国家/地区)

但是当我在猫和列表(垃圾)之间添加另一个关联链时,它不起作用(垃圾属于列表,也属于猫):

@dog.litters.joins(:listing) & Listing.joins(:address_country) & Country.where(permalink: 'uk')

在这个查询中,我希望它能够获取国家(相关列表)匹配的Litters。但它只返回一个空数组。第一个查询有效,我想我只需将其固定到@cat.litters?)

在Rails C中,我得到了这个:

 d.litters.joins(:listing) & Listing.joins(:address_country).merge(Country.where(permalink: 'uk'))

  Litter Load (0.6ms)  SELECT "litters".* FROM "litters" INNER JOIN "listings" ON "listings"."id" = "litters"."listing_id" WHERE "litters"."litterable_id" = 11 AND "litters"."litterable_type" = 'Dog'
  Listing Load (0.4ms)  SELECT "listings".* FROM "listings" INNER JOIN "countries" ON "countries"."id" = "listings"."address_country_id" WHERE "countries"."permalink" = 'uk'
=> []

任何想法我做错了什么?

0 个答案:

没有答案