当我链接关联不同表的 searchlogix 条件时,结果重复。
当我链接 searchlogix 条件查询单个表中的字段时,结果完美。
下面是跨多个表链接条件的示例(机器属于制造商和机器 habtm 工具和系统)。
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,消除重复的结果。但是,这感觉很糟糕,几乎可以肯定不会扩展。
任何人都可以提供指导吗?谢谢你。