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
我有一个活动记录查询,其中 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