jho*_*ers 0 phoenix elixir ecto
嘿,我正在尝试进行查询,我的代码如下所示:
def show(conn, _params) do
user = Guardian.Plug.current_resource(conn)
team = Web.get_team!(user.team.id)
score_query =
from(
u in User,
where: u.team.id == team.id,
select: sum(u.score)
)
team_score = Repo.all(score_query)
IO.puts("score")
IO.inspect(team_score)
conn |> render("team.json", team: team)
Run Code Online (Sandbox Code Playgroud)
当我尝试运行它时,我收到一条错误消息:
** (Ecto.Query.CompileError) unbound variable `team` in query
Run Code Online (Sandbox Code Playgroud)
但为什么是未绑定的?我该如何修复它以及为什么会发生这种情况?
你应该固定 ( ^) team.id:
score_query =
from(
u in User,
# ? HERE
where: u.team.id == ^team.id,
select: sum(u.score)
)
Run Code Online (Sandbox Code Playgroud)
根据Ecto.Query文档:
可以使用以下命令将外部值和 Elixir 表达式注入到查询表达式中
^:Run Code Online (Sandbox Code Playgroud)def with_minimum(age, height_ft) do from u in "users", where: u.age > ^age and u.height > ^(height_ft * 3.28), select: u.name end
| 归档时间: |
|
| 查看次数: |
1743 次 |
| 最近记录: |