Elixir 获得与长生不老药和凤凰的关联计数

Elixir 获得与长生不老药和凤凰的关联计数,elixir,phoenix-framework,ecto,Elixir,Phoenix Framework,Ecto,我试图在我的应用程序中找到一个联盟中有多少支球队。我似乎找不到这个问题的答案。以下是我们的“我的模型”: 联盟 队 我想知道一个联赛有多少队。如果这是Rails,我会做这个League.first.teams.count。我怎样才能用长生不老药、凤凰和外星人做到这一点 我是一个外星生物,但这是我的第一次尝试,但没有成功 def league_limit(league) do count = from l in league, left_join: t in assoc(l

我试图在我的应用程序中找到一个联盟中有多少支球队。我似乎找不到这个问题的答案。以下是我们的“我的模型”:

联盟 队 我想知道一个联赛有多少队。如果这是Rails,我会做这个
League.first.teams.count
。我怎样才能用长生不老药、凤凰和外星人做到这一点

我是一个外星生物,但这是我的第一次尝试,但没有成功

  def league_limit(league) do
    count = from l in league,
      left_join: t in assoc(l, :teams),
      group_by: l.id,
      select: {l, count(t.id)}
  end
我想知道一个联赛有多少队

假设
league\u limit
league
参数是一个已加载的
%league{}
结构,添加一个
where:
子句以将其缩小到传入的联赛:

 def league_limit(league) do
    count = 
      from l in League,
      where: l.id == ^league.id,
      left_join: t in assoc(l, :teams),
      group_by: l.id,
      select: {l, count(t.id)}
  end

你发布的代码中有什么不起作用?旁注:
团队
不应该明确地属于
用户
,它带来了潜在的不一致性,因为它已经属于
联盟
,后者已经属于
用户
@mudasobwa你是对的,但联盟不应该属于用户。我正在创建用户联盟的联接表。
  def league_limit(league) do
    count = from l in league,
      left_join: t in assoc(l, :teams),
      group_by: l.id,
      select: {l, count(t.id)}
  end
 def league_limit(league) do
    count = 
      from l in League,
      where: l.id == ^league.id,
      left_join: t in assoc(l, :teams),
      group_by: l.id,
      select: {l, count(t.id)}
  end