我的模型Task
与用户表有关 - 作为asignee和reporter
class Task < ActiveRecord
belongs_to :assignee, class_name: 'User'
belongs_to :reporter, class_name: 'User'
end
在sql中我想选择任务,其中受让人具有特定名称
Task.includes(:assignee, :reporter).where('assignee.first_name = ?', 'Filip')
但是这个查询提出了:
ActiveRecord::StatementInvalid: PG::UndefinedTable: ERROR: missing FROM-clause entry for table "assignee"
我可以打电话
Task.includes(:assignee, :reporter).where('user.first_name = ?', 'Filip')
但它返回受让人和记者的记录
如何在仅引用受让人关系的where子句中添加条件?
答案 0 :(得分:0)
如果Assignee's
表名是assignees
,您可以这样写:
Task.
includes(:assignee, :reporter).
where('assignees.first_name = ?','Filip').
references(:users)
希望能帮到你。