表 "stores" 有一个条目,但不能从查询的这一部分引用它



我想通过has_and_belongs_to_many关系从我的商店中选择最新的4次交易,而IM会遇到此错误:

表"商店"有一个条目,但不能从中引用 查询的这一部分

class Deal < ActiveRecord::Base
   has_and_belongs_to_many :stores
end
class Store < ActiveRecord::Base
   has_and_belongs_to_many :deals
end

我的查询

SELECT * FROM (SELECT stores.id AS store_id,       deals.*,
      dense_rank() OVER (
        PARTITION BY deals.stores.id
        ORDER BY deals.created_at DESC
      ) AS deal_rank
 FROM "deals" 
 INNER JOIN "listings" 
 ON "listings"."deal_id" = "deals"."id" 
 INNER JOIN "images" 
 ON "images"."id" = "deals"."image_id" 
 INNER JOIN "deals_stores" 
 ON "deals_stores"."deal_id" = "deals"."id" 
 INNER JOIN "stores" 
 ON "stores"."id" = "deals_stores"."store_id"  
 ORDER BY deals.created_at desc) 
 AS ranked_deals  
 WHERE (deal_rank <= 4)

定义habtm关系时,您应该更喜欢复数版本。

您需要更改

has_and_belongs_to_many :store

to

has_and_belongs_to_many :stores

最新更新