我在Rails项目中使用Sunspot 1.3.0。
Post.search do
with(:category_ids, [1, 3, 5])
end
将匹配类别为1,3或5的帖子。
匹配具有正好1,3 和 5类别的帖子的正确语法是什么?
E.g。帖子在哪里
category_ids = [1] - 不匹配
category_ids = [1,3] - 不匹配
category_ids = [1,3,5] - 确实匹配
category_ids = [1,3,5,7] - 不匹配
我试过
with(:category_ids).equal_to([1,3,5])
但是这给了我以下错误: 未定义方法`gsub'表示[“1”,“3”,“5”]:数组
答案 0 :(得分:1)
所以,我最终使用“all_of”来解决这个问题 万一它可以帮助其他人,这就是我所做的:
with(:category_ids).all_of([1,3,5])
这将匹配[1,3,5]的帖子类别,但也包含任何其他类别的帖子,例如[ 0 ,1,3,5, 7 ]也会匹配。
一旦太阳黑子返回其结果集,我就过滤掉了与之完全不匹配的帖子。
这就是我想要的,但我希望有更简洁的方法来做到这一点。