0

我有两个模型UserType. 每个用户可以有多种类型。考虑以下示例

sample_user(user)
  ----> football player(type)
  ----> actor(type)
  ----> buisness-man(type)

同样,存在许多用户及其类型。还有一个模型叫做Like. like 模型包含他最喜欢的类型。它甚至可以是他自己的类型或他没有的其他类型。考虑一个例子

sample_user(user)
  ----> cricketer(like)
  ----> actress(like)
  ----> buisness-man(like)

现在我想做的是,sample_user有 3 个喜欢,我想将 sample_user 的喜欢与其他用户的类型进行比较,如果任何一种喜欢sample_user与其他用户的任何一种类型匹配,那么我有获取该用户。那么我该怎么做。请帮我。我认为如果查询效率不高,这将需要一些时间。所以请帮助我。抱歉,如果问题不清楚。任何帮助是极大的赞赏。

4

1 回答 1

0

您不能仅使用 SQL 查询来做到这一点。你可以做这样的事情

user1_likes = sample_user1.likes.pluck(:title)
user2_likes = sample_user2.likes.pluck(:title)

result = user1_likes & user2_likes

fetch user2 if result.present?
于 2013-08-31T11:33:12.447 回答