首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >活动记录where子句中没有这样的列

活动记录where子句中没有这样的列
EN

Stack Overflow用户
提问于 2015-12-27 10:31:18
回答 1查看 294关注 0票数 0
代码语言:javascript
复制
Match.where(approval: {summoner_id: 18})
Match Load (0.6ms)  SELECT "matches".* FROM "matches" WHERE "approval"."summoner_id" = ?  [["summoner_id", 18]]
SQLite3::SQLException: no such column: approval.summoner_id: SELECT "matches".* FROM "matches" WHERE "approval"."summoner_id" = ?
ActiveRecord::StatementInvalid: SQLite3::SQLException: no such column: approval.summoner_id: SELECT "matches".* FROM "matches" WHERE "approval"."summoner_id" = ?

但如果我这么做了

代码语言:javascript
复制
Approval.first.summoner_id
Approval Load (0.2ms)  SELECT  "approvals".* FROM "approvals"  ORDER BY "approvals"."id" ASC LIMIT 1
#=> 18

它就会出现。

我正在尝试查找所有比赛的批准有一个具体的召唤师id的比赛。

我怎么搜索这个?

代码语言:javascript
复制
class Match < ActiveRecord::Base
  belongs_to :approval
end
EN

回答 1

Stack Overflow用户

发布于 2015-12-27 11:21:29

您正在尝试引用approval表中的列:

代码语言:javascript
复制
:approval => { summoner_id: 18 }

但是你犯了两个错误:

该表名为approvals,而不是

  1. approvals,因此没有可用于查询的approvalapprovals表。

我想你的意思是说:

代码语言:javascript
复制
Match.joins(:approvals).where(:approvals => {summoner_id: 18})
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34477103

复制
相关文章

相似问题

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