到目前为止,我已经创建了这个查询:
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根据位于IMPORTANT底部的文档消息,在执行未执行的连接时,必须包含关系中使用的外键,但我不知道如何对正在执行的动态连接类型执行这种类型的assoc
发布于 2017-06-08 08:11:39
map可以在不导入任何东西的情况下使用。实际的函数是在Ecto内部实现的,Ecto.Query.API.map/2只是为了文档目的。下列措施应能发挥作用:
from [_page, h] in query, select: map(h, [:body, :footer])https://stackoverflow.com/questions/44390950
复制相似问题