【问题标题】:There is an entry for table "stores", but it cannot be referenced from this part of the query表“stores”有一个条目,但不能从这部分查询中引用
【发布时间】:2015-07-13 10:30:42
【问题描述】:

我想从我的商店中选择最近的 4 笔交易,具有 has_and_belongs_to_many 关系,我收到此错误:

表“stores”有一个条目,但无法从中引用 这部分查询

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)

【问题讨论】:

  • 您也可以发布您的表定义吗?这部分是否正确:deals.stores.id

标签: ruby-on-rails postgresql activerecord


【解决方案1】:

在定义 habtm 关系时,您应该首选复数形式。

你需要改变

has_and_belongs_to_many :store

has_and_belongs_to_many :stores

【讨论】:

    猜你喜欢
    • 2019-01-14
    • 1970-01-01
    • 2019-01-06
    • 2016-06-19
    • 2014-08-08
    • 2018-11-17
    • 2019-11-04
    • 1970-01-01
    • 2021-12-25
    相关资源
    最近更新 更多