使用'包括' SQL Rails查询中的模型

时间:2016-09-20 05:38:59

标签: sql ruby-on-rails ruby postgresql ruby-on-rails-4

我的模型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子句中添加条件?

1 个答案:

答案 0 :(得分:0)

如果Assignee's表名是assignees,您可以这样写:

    Task.
      includes(:assignee, :reporter).
      where('assignees.first_name = ?','Filip').
      references(:users)

希望能帮到你。