【问题标题】:Query has_many associations - Ecto, Phoenix查询 has_many 关联 - Ecto、Phoenix
【发布时间】:2018-05-23 08:22:14
【问题描述】:

我正在尝试查询系统中属于特定用户的所有联赛。

数据设置如下所示:

用户模型:

has_many :users_leagues, Statcasters.UsersLeagues
has_many :leagues, through: [:users_leagues, :league]

所以你可以看到,我有一个 has_many through 关联用户和联盟。

我正在尝试获取用户附加到它的所有联赛的列表。

在 Rails 中,它看起来像这样:user.leagues,它会加载所有附加了当前用户 ID 的联赛。

如何使用 Ecto、Elixir 和 Phoenix 做到这一点?

【问题讨论】:

    标签: elixir phoenix-framework ecto


    【解决方案1】:

    您可以使用Repo.preloadleagues 预加载到user

    user = user |> Repo.preload([:leagues])
    # user.leagues is now a list of leagues
    

    或使用assocRepo.all 为用户获取联赛列表:

    leagues = Ecto.assoc(user, :leagues) |> Repo.all
    

    【讨论】:

    • 太棒了。这很容易!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多