我试图将has_many关联预加载到传入的结构和传递的结构关联的has_many关联。
以下是我现在正在使用的内容:
project =
Repo.get!(Project, id)
|> Repo.preload([rows: {query, [images: from i in Image, order_by: i.index]}])
但这会返回此错误:
This error may happen when you forget a comma in a list or other container:
[a, b c, d]
Elixir cannot compile otherwise. Syntax error before: ','
虽然这样做很好:
project =
Repo.get!(Project, id)
|> Repo.preload([rows: {query, [:images]}])
但是在这个查询中,我无法按照我想要的图像进行排序。有人可以帮我吗?
答案 0 :(得分:5)
表达式
[images: from i in Image, order_by: i.index]
由于逗号,含糊不清。它可以解释为:
[images: from(i in Image, order_by: i.index)]
或作为:
[images: from(i in Image), order_by: i.index]
您需要添加明确的括号来解决歧义。在这种情况下,您需要:
[images: from(i in Image, order_by: i.index)]