まず、私のモデル定義:
class Batch < ActiveRecord::Base
has_many :data_files
has_many :file_types, :through => :data_files, :group => "data_files.file_type_id"
end
class DataFile < ActiveRecord::Base
belongs_to :batch
belongs_to :file_type
end
class FileType < ActiveRecord::Base
has_many :data_files
end
したがって、基本的に私が意図しているのは、1 つ以上のデータ ファイルを含むバッチです。各データ ファイルは特定のタイプであり、バッチ内のすべての一意のファイル タイプを取得できるようにしたいと考えています。上記の実装に基づいて、次のことが機能すると予想していました。
batch.file_types
ただし、そのgroup
部分は機能していないようです。つまり、ファイルの種類のリストは一意ではないため、どこでもこれを行う必要があります。
batch.file_types.uniq
私は何を間違っていますか?
編集: 生成された SQL は次のとおりです。
SELECT `file_types`.* FROM `file_types`
INNER JOIN `data_files` ON `file_types`.id = `data_files`.file_type_id
WHERE ((`data_files`.batch_id = 234))