假设我有一个BlogPost
对象。现在我想找到有2个或更多的相关特定标签的博客文章。
对于我的搜索,我使用ransack,我想找到所有的博客文章,有标签与ID 5和7。
我的请求看起来像这样:
"q":{
"active_tags_tag_id_in":[5,7],
}
现在的问题是,这将给予我任何职位与标签5或标签7适用。
然而,我想要的是标签5和标签7都应该被应用。
所以从OR切换到AND逻辑。我在ransack文档中找不到任何告诉我如何做到这一点的东西。
假设我有一个BlogPost
对象。现在我想找到有2个或更多的相关特定标签的博客文章。
对于我的搜索,我使用ransack,我想找到所有的博客文章,有标签与ID 5和7。
我的请求看起来像这样:
"q":{
"active_tags_tag_id_in":[5,7],
}
现在的问题是,这将给予我任何职位与标签5或标签7适用。
然而,我想要的是标签5和标签7都应该被应用。
所以从OR切换到AND逻辑。我在ransack文档中找不到任何告诉我如何做到这一点的东西。
1条答案
按热度按时间w8biq8rn1#
不幸的是,Ransack没有很好的高级搜索文档,但Heroku上有Ransack演示示例网站:
http://ransack-demo.herokuapp.com/users/advanced_search
你可以把它当作一个沙盒。如果你试着在那里做实验,你会注意到在Ransack中有群体条件这样的东西
要创建组,您需要在标准
q
参数中定义g
参数。要在组中定义AND/OR条件,需要定义嵌套的m
参数最后,您的请求参数看起来像这样