13

如何仅选择具有关联标签记录的员工?换言之,只选择与一个或多个标签记录相关联的员工记录。

class Employee < ActiveRecord::Base
  has_and_belongs_to_many :tags
end

class Tag < ActiveRecord::Base
  has_and_belongs_to_many :employees
end

下面的查询(这是错误的)会让你们了解我正在尝试做什么。

Employee.includes(:tags).where("tags.id != nil")
4

1 回答 1

25

您可以使用.joins

Employee.joins(:tags)

此生成的 SQL 包含和INNER JOINtags表上,省略employees了没有关联记录的表tags记录。

于 2012-08-22T18:04:27.077 回答