0

我有一个用户模型。对于给定的用户,我想知道该用户是否解决了管理员的一个问题(管理员也是用户,我始终将管理员用户作为 admin_user)。

解决方案 belongs_to 问题。问题属于_to 用户。用户 has_many 解决方案。

对于给定的用户,我想知道是否

Solution[0].question.user.id = admin_user.id or
Solution[1].question.user.id = admin_user.id or
...
Solution[Solution.all.size - 1].question.user.id = admin_user.id

即当前用户是否解决了 admin_user 发布的任何问题。

我可以做一个嵌套包含,但是在我获得给定用户的所有解决方案 + 相关数据之后,我觉得我将做一个非常昂贵的循环来确定用户是否为 admin_user 解决了任何问题。

关于如何最好地编写此查询的任何想法?

谢谢!林戈

4

1 回答 1

0

我认为这样的事情可以更有效地解决您的问题。

admin_question_ids = admin_user.questions.map(&:id)
question_ids_answered_by_user = current_user.solutions.map(&:question_id)

has_answered_admin_question = question_ids_answered_by_user.any? do |question_id|
    admin_question_ids.include?(question_id)
end
于 2013-03-25T20:07:21.813 回答