Когда я объединяю условия searchlogix, которые связывают разные таблицы, результаты дублируются.
Когда я связываю условия searchlogix, запрашивающие поля из одной таблицы, результаты работают отлично.
Ниже приведен примерусловий цепочки для нескольких таблиц (машина принадлежит производителю и станку habtm tools and systems).
Machine.manufacturer_id_equals(params[:search][:manufacturer]) \
.tools_id_equals(params[:search][:tools]) \
.systems_id_equals(params[:search][:systems]
В этом запросе должен быть возвращен только 1 действительный результат, но одна и та же строка возвращается 8 раз (суммарные результаты удваиваются при каждом новом условии, выполняющем поиск в разных таблицах).
Я предполагаю, что существует такая проблема с объединением, ассоциациями и т. д.
Обновление: создается впечатление, что (повторяющиеся) результатывернулся.Допустим, есть 2 действительных соответствия машин.Тем не менее, запрос возвращает совпадение для каждого инструмента и системы, связанных с машиной.Таким образом, если на машине имеется 2 инструмента и 2 системы, она возвращается 4 раза.
Временное исправление - вызов uniq для возвращаемого массива, исключающий повторяющиеся результаты.Однако это плохо, и почти наверняка не будет масштабироваться.
Кто-нибудь может дать руководство?Спасибо.