Как исключить пользователей, на которых текущий пользователь уже подписан на странице поиска? - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь исключить пользователей, которые уже подписаны на странице обнаружения.После загрузки страницы пользователи, за которыми следовал current_user, должны быть удалены со страницы обнаружения.До сих пор мне удалось исключить current_user со страницы обнаружения с помощью:

def User.all_except(user)
  where.not(id: user)
end  

Хотя я не слишком уверен, как реализовать постепенное исключение подписчиков из страницы обнаружения.

Это похоже на приведенный выше код из модели отношений followed_id следует выбирать следующим образом ?:

 Relationship.where.not(follower_id: user.id)

1 Ответ

2 голосов
/ 18 июня 2019

Не уверен, что имена полей правильные, но, учитывая, что у вас есть модель Отношения со столбцами follower_id и follow_id, она должна выглядеть примерно так:

User.where.not(id: Relationship.where(follower_id: user.id).select(:followed_id))

Он сгенерирует такой подзапрос:

ВЫБРАТЬ ... ОТ пользователей, ГДЕ НЕ ВХОДИТ (ВЫБРАТЬ follow_id ИЗ ...)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...