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" = ?但如果我这么做了
Approval.first.summoner_id
Approval Load (0.2ms) SELECT "approvals".* FROM "approvals" ORDER BY "approvals"."id" ASC LIMIT 1
#=> 18它就会出现。
我正在尝试查找所有比赛的批准有一个具体的召唤师id的比赛。
我怎么搜索这个?
class Match < ActiveRecord::Base
belongs_to :approval
end发布于 2015-12-27 11:21:29
您正在尝试引用approval表中的列:
:approval => { summoner_id: 18 }但是你犯了两个错误:
该表名为approvals,而不是
approvals,因此没有可用于查询的approval或approvals表。我想你的意思是说:
Match.joins(:approvals).where(:approvals => {summoner_id: 18})https://stackoverflow.com/questions/34477103
复制相似问题