我甚至不确定这个标题是否是最好的描述。
我正在通过表格为我的活动构建一些基本的过滤功能。事件具有选择下拉列表中的类别。
现在,当您想要过滤时,可以通过复选框选择要显示的类别。
我有点难过如何做到这一点。是否可以在一个查询中完成所有操作?或者你为每个类别将它分成1个?
我的旧查询是current_user.friends.events(:event, :rel).where("rel.admin = {admin_p} AND event.detail = {detail_p}").params(admin_p: true, detail_p: true).pluck(:event)
在这种情况下,我需要像event.category = category1, category2, cateogry3
这样的东西。显然这不是它的写法。如何实现这个目标?
答案 0 :(得分:1)
在cypher中,IN
可让您匹配数组中的结果。
MATCH (u:User)-[r1:INVITED_TO]->(e:Event) WHERE e.uuid IN [1, 2, 3, 4, 5] RETURN e
这会将事件与该数组中的任何uuid属性进行匹配。在Ruby gem中,如果在where方法中使用数组,则会在QueryProxy中自动处理。
current_user.events.where(category: [1, 2, 3, 4, 5])
在表单中,确保每个复选框的值与其ID一致。将这些ID放入数组并按上面的说明进行搜索。