查询 has_many 个协会 - Ecto、Phoenix
Query has_many associations - Ecto, Phoenix
我正在尝试查询属于我系统中特定用户的所有联赛。
数据设置如下所示:
用户模型:
has_many :users_leagues, Statcasters.UsersLeagues
has_many :leagues, through: [:users_leagues, :league]
所以你可以看到,我有一个 has_many 通过用户和联盟的关联。
我正在尝试获取用户已附加的所有联赛的列表。
在 rails 中,它看起来像这样: user.leagues
它将加载所有附加了当前用户 ID 的联赛。
如何使用 Ecto、Elixir 和 Phoenix 执行此操作?
您可以使用 Repo.preload
:
将 leagues
预加载到 user
user = user |> Repo.preload([:leagues])
# user.leagues is now a list of leagues
或使用 assoc
和 Repo.all
获取用户的联赛列表:
leagues = Ecto.assoc(user, :leagues) |> Repo.all
我正在尝试查询属于我系统中特定用户的所有联赛。
数据设置如下所示:
用户模型:
has_many :users_leagues, Statcasters.UsersLeagues
has_many :leagues, through: [:users_leagues, :league]
所以你可以看到,我有一个 has_many 通过用户和联盟的关联。
我正在尝试获取用户已附加的所有联赛的列表。
在 rails 中,它看起来像这样: user.leagues
它将加载所有附加了当前用户 ID 的联赛。
如何使用 Ecto、Elixir 和 Phoenix 执行此操作?
您可以使用 Repo.preload
:
leagues
预加载到 user
user = user |> Repo.preload([:leagues])
# user.leagues is now a list of leagues
或使用 assoc
和 Repo.all
获取用户的联赛列表:
leagues = Ecto.assoc(user, :leagues) |> Repo.all