【发布时间】:2016-12-17 19:46:31
【问题描述】:
我需要一个 ActiveRecord Postgres 查询,它返回与通过数组传入的所有参数匹配的结果。
一些背景:我有一个用户模型,它有很多主题(通过专业)。我将主题 ID 作为字符串 (Parameters: {"topics"=>"1,8,3"}) 传递,然后将它们转换为带有 .split(',') 的数组,所以我最终得到 topic_params = ["1","8","3"]。
现在我正在尝试返回具有匹配/包含所有主题的所有用户。在遵循this question 中的答案后,我设法返回了与任何主题匹配的用户:
@users = User.includes(:topics, :organization).where(:topics => {:id => topic_params})
但我需要它返回匹配所有的结果。我也愿意接受更好的方法来完成这类任务。
【问题讨论】:
-
@Iceman,感谢您的链接。在这种情况下,我将如何以 ActiveRecord 格式编写它?
-
ActiveRecord 有
having和to_sql方法来帮助你。 -
@muistooshort,感谢您提供的信息。我将如何利用它们?
标签: sql ruby-on-rails ruby postgresql activerecord