2

我什至不确定这个标题是否是最好的描述。

我正在通过一个表单为我的事件构建一些基本的过滤功能。事件具有来自选择下拉列表的类别。

现在,当您想要过滤时,您可以通过复选框选择您想要显示的类别。

我有点难过如何做到这一点。是否可以在一个查询中完成所有操作?还是您将每个类别分为 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. 显然不是这样写的。实现这一目标的方法?

4

1 回答 1

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 放入一个数组并进行搜索,如上所示。

于 2014-11-27T17:31:08.527 回答