我到目前为止创建了查询:
query = from page in "wagtailcore_page",
where: page.url_path == ^url_path,
join: h in ^table_name,
where: h.page_ptr_id == page.id
我现在想在h
例如,如果我传入[:body, :footer]
我想运行:
query = from [_page, h] in query,
select: %{body: h.body, footer: h.footer}
我发现Ecto.Query.API.map看起来可以用于此问题的解决方案。
但是当我跑步时:
from [_page, h] in query, select: EctoApi.map(h, [:body])
我收到错误:
** (Ecto.Query.CompileError) `EctoApi.map(h, [:alphatext])` is not a valid query expression
根据map
documentation底部的IMPORTANT
消息,我们必须在执行我们没有做的连接时包含关系中使用的外键,但我不知道如何为我们正在进行的动态连接类型执行此类assoc
答案 0 :(得分:1)
map
可以在不导入任何内容的情况下使用。实际函数在Ecto中实现,Ecto.Query.API.map/2
仅用于文档目的。以下应该有效:
from [_page, h] in query, select: map(h, [:body, :footer])