我有两个模型User
和Type
。每个用户可以有多种类型。请考虑以下示例
sample_user(user)
----> football player(type)
----> actor(type)
----> buisness-man(type)
并且类似地存在多个用户及其类型。还有另一个名为Like
的模型。类似的模型包含他最喜欢的类型。它甚至可以是他自己的类型或者他没有的其他类型。考虑一个例子
sample_user(user)
----> cricketer(like)
----> actress(like)
----> buisness-man(like)
现在我要做的是,sample_user
有3个喜欢,我想将sample_user的喜欢与其他用户的类型进行比较,如果有任何一个sample_user
匹配的话与任何其他类型的其他用户,然后我必须获取该用户。那我怎么能这样做呢。请帮我。我认为如果查询效率不高,这需要一些时间。所以请帮帮我。对不起,如果问题不清楚。任何帮助是极大的赞赏。
答案 0 :(得分: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?