Во-первых, мои модели определения:Рельсы 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
Что я делаю неправильно?
EDIT: 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