![](/img/trans.png)
[英]How do I get the nth record for each distinct name in a table in 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.