Результаты поиска, дублирующие каждую ассоциацию - PullRequest
1 голос
/ 06 сентября 2010

Когда я объединяю условия 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 для возвращаемого массива, исключающий повторяющиеся результаты.Однако это плохо, и почти наверняка не будет масштабироваться.

Кто-нибудь может дать руководство?Спасибо.

...