13

タグレコードを関連付けている従業員のみを選択するにはどうすればよいですか?つまり、1つ以上のタグレコードが関連付けられている従業員レコードのみを選択します。

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 JOINれ、テーブルに含まれています。tagsemployeestags

于 2012-08-22T18:04:27.077 に答える