以下条件
Contractor.includes(:contractorusers).where(['building_id = ? AND contractorusers.user_id = ?', 21, 72]).all
根据数据库PG::UndefinedTable: ERROR: missing FROM-clause entry for table "contractorusers"
生成投诉,尽管数据库确实已经定义了
create_table "contractorusers", force: :cascade do |t|
t.integer "contractor_id"
t.integer "user_id"
因此语法显然需要修复。怎么样?
答案 0 :(得分:0)
您写的查询将无法正常工作,因为包含将首先调用父级以获取与id相关的合同,然后将搜索具有由父查询返回的ID数组的承包商。
试试这个:
Contractor.joins(:contractorusers).where("building_id = ? AND contractorusers.user_id = ?", 21, 72)