Запрос имеет множество ассоциаций - Экто, Феникс

Я пытаюсь запросить все лиги, принадлежащие конкретному пользователю в моей системе.

Настройка данных выглядит следующим образом:

ПОЛЬЗОВАТЕЛЬСКАЯ МОДЕЛЬ:

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
Другие вопросы по тегам