Hi there !
I’d like to reduce the amount of joins
in my code.
Instead of having, let’s say:
def join_on_client_id_and_id(from, query) do
from c in ^from,
join: q in ^query,
on: c.client_id == q.id
end
and another function like this:
def join_on_client_id_and_client_id(from, query) do
from c in ^from,
join: q in ^query,
on: c.client_id == q.client_id
end
instead, I would like to have a function with that signature:
def join_on_client(from, query, options \\ [with: :client_id])
with with
being the field on ^query
to join on.
I would for instance use send(m, options[:with]
to specify the second field to join on.
I’ve found out that I could maybe use the Ecto.Query.dynamic
function but can’t find a good example on how to use it in the case of a join
.
Could you please help me ?