首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >断联栏杆4

断联栏杆4
EN

Stack Overflow用户
提问于 2017-05-30 13:27:08
回答 1查看 35关注 0票数 0

我的模型是出价,拍卖和公司。我的BidAuction的联系似乎被打破了。出于某种原因Auction.joins(:bids).where(bids: @bids).to_sql给了我

代码语言:javascript
复制
"SELECT "auctions".* 
FROM "auctions" 
INNER JOIN "bids" ON "bids"."auction_id" = "auctions"."id" 
WHERE "auctions"."auction_id" IN 
    (SELECT "bids"."id" FROM "bids" INNER JOIN "inventory_parts" ON 
     "bids"."inventory_part_id" = "inventory_parts"."id" 
     WHERE "inventory_parts"."company_id" = 1)" 

我感到困惑的是,为什么查询有条件WHERE "auctions"."auction_id"。应该是WHERE "auctions"."id"

为了简洁起见,我只列出我认为在我的问题上可以发挥作用的模式和我认为重要的联系

我有个拍卖模型

代码语言:javascript
复制
class Auction < ActiveRecord::Base
  belongs_to :company
  has_one :auction_part, dependent: :destroy
  has_one :part, through: :auction_part
  has_many :bids, dependent: :destroy

投标模型

代码语言:javascript
复制
class Bid < ActiveRecord::Base
  has_one :company, through: :inventory_part
  belongs_to :auction
  belongs_to :inventory_part

和公司模型

代码语言:javascript
复制
class Company < ActiveRecord::Base
  has_secure_password
  has_many :auctions, dependent: :destroy
  has_many :bids, through: :inventory_parts
  has_many :inventory_parts, dependent: :destroy
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-05-30 13:32:45

您需要在bids.id IN (1,2)上运行该查询。它应该是

代码语言:javascript
复制
Auction.joins(:bids).where(bids: {id: @bids})

# OR 

Auction.joins(:bids).where(bids: {id: @bids.pluck(:id)})
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44263617

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档