首先,我的模型定义:导轨的has_many通过,一群不太工作
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
所以基本上我打算是具有一个或多个数据文件的批次,每个数据文件是一种特殊的类型,我希望能够批量获取所有独特的文件类型。基于上述实施,我本来期望以下工作:
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))
你试过':group =>:file_type_id'吗?请发布生成的SQL。 – Anil
向问题添加了SQL ..谢谢 – Adnan