繁体   English   中英

Rails - 如何进行此查询? 获得每条记录之一

[英]Rails - How Do I do this Query? Get One of Each Record

我有一个BlogPost模型,其中包含:category属性。 我正在制作一个新的BlogPost表单,我希望选择菜单能够填充用户在先前记录中输入的每个类别。

因此,我需要一个查询来查找具有User ID所有BlogPosts ,然后将他们输入的每个类别的列表四舍五入。 多个记录中将存在相同的类别,但当然我只想为选择菜单返回它的副本。

谢谢 :)

您可以SELECT DISTINCT类别向正确的用户返回INNER JOIN

Category
  .joins( :posts )
  .where( posts: { user_id: current_user.id } )
  .uniq

这应该发送这样的查询:

SELECT DISTINCT categories.*
FROM categories
  INNER JOIN posts ON posts.category_id = categories.id
WHERE posts.user_id = [whatever]

编辑注意:要小心uniq既是Relation又是Array 确保在将它转换为数组之前在关系上调用它,或者你将在一系列非独特结果上执行uniq,这也是有效的,但在性能方面是荒谬的。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM