I'm trying to preload a has_many association to a passed in struct and the has_many association of the passed on structs association.
Here is what I'm working with right now:
project =
Repo.get!(Project, id)
|> Repo.preload([rows: {query, [images: from i in Image, order_by: i.index]}])
But this is returning this error:
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: ','
This works just fine though:
project =
Repo.get!(Project, id)
|> Repo.preload([rows: {query, [:images]}])
But in this query I'm not able to do the ordering I want on images. Can anybody help me with this?
The expression
[images: from i in Image, order_by: i.index]
is ambiguous because of the comma. It can either be interpreted as:
[images: from(i in Image, order_by: i.index)]
or as:
[images: from(i in Image), order_by: i.index]
You need to add explicit parentheses to resolve the ambiguity. In this case, you want:
[images: from(i in Image, order_by: i.index)]