Rails Active Record 分组或忽略查询中的重复结果

Rails Active Record group or ignore duplicate results from query

我有一个活动记录查询,其中 return 是搜索查询中的标签列表。我正在将其渲染到 json 以用于标签搜索。

问题是查询会 return 多个同类标签。有无忽略倍数或组倍数?

这是查询(对不起,它很长):

Tag.joins("INNER JOIN taggings ON taggings.tag_id = tags.id INNER JOIN posts ON taggings.taggable_id = posts.id INNER JOIN buckets ON posts.bucket_id = buckets.id INNER JOIN memberships ON memberships.bucket_id = buckets.id").where(memberships: {user_id: current_user.id, accepted: true}).where("name LIKE ?" , "#{params[:query]}%")

例如,当您搜索 'illustration' 时,有两个带有插图标记的帖子 returned,我想将其归为一个:

谢谢!

您应该能够将 .uniq 链接到查询的末尾以返回唯一记录。或者你可以试试 .distinct

http://apidock.com/rails/ActiveRecord/QueryMethods/distinct