【发布时间】:2021-11-07 15:52:08
【问题描述】:
我有这样的事情:
duplicates = ['a','b','c','d']
if duplicates.length > 4
Photo.includes(:tags).where('tags.name IN (?)',duplicates)
.references(:tags).limit(15).each do |f|
returned_array.push(f.id)
end
end
duplicates 是与其他Photo 标记重复的标记数组
我想要的是获得包含 duplicates 数组中所有标签的Photo,但现在我得到每个包含数组中至少一个标签的Photo。
感谢您的回答:
我尝试了它们,有些东西开始起作用,但对我来说不是太清楚,需要一些时间来执行。
今天我让它创建数组,比较它们,获取数组中存在超过 X 次的重复项,最后获得 uniq 的照片 id 数组。
【问题讨论】:
-
或许可以加
group(:id).having(Photo.arel_table[:id].count.eq(duplicates.length))。 -
Photo 和 Tag 有 HABTM 关系吗?
-
照片有很多标签,标签belongs_to photo
-
尝试组并拥有但没有 arel_table ... 必须阅读它
-
数据库是mySql还是Postgres?
标签: sql ruby-on-rails ruby ruby-on-rails-6