Запрос имеет множество ассоциаций - Экто, Феникс
Я пытаюсь запросить все лиги, принадлежащие конкретному пользователю в моей системе.
Настройка данных выглядит следующим образом:
ПОЛЬЗОВАТЕЛЬСКАЯ МОДЕЛЬ:
has_many :users_leagues, Statcasters.UsersLeagues
has_many :leagues, through: [:users_leagues, :league]
Итак, вы можете видеть, у меня есть has_many через ассоциацию для пользователей и лиг.
Я пытаюсь получить список всех лиг, прикрепленных к нему пользователем.
В рельсах это будет выглядеть примерно так: user.leagues
и он загрузит все лиги, к которым привязан текущий идентификатор пользователя.
Как я могу сделать это с Экто, Эликсиром и Фениксом?
1 ответ
Решение
Вы можете либо предварительно загрузить leagues
в user
с помощью Repo.preload
:
user = user |> Repo.preload([:leagues])
# user.leagues is now a list of leagues
или использовать assoc
а также Repo.all
чтобы получить список лиг для пользователя:
leagues = Ecto.assoc(user, :leagues) |> Repo.all