所以我有一个这样的模型
Qber.V1.CustomerModel
这是存储在我的代码中的变量可查询
中defp build_select(queryable, opts_select \\ []) do
case opts_select do
nil ->
queryable
IO.inspect opts_select
select when is_list(select) ->
IO.inspect select
map = Enum.map(select, &String.to_existing_atom/1)
IO.inspect map
a = from queryable, select: ^map
IO.inspect a
end
end
现在,当我运行查询时,它会将select映射到整个模型,但我想要的是 customers 表,而不是整个Qber.V1.CustomerModel
我该怎么做?
答案 0 :(得分:0)
如果你理解正确,你有2个表:
customer_models
customers
并且您希望使用customers
来使用模型Qber.V1.CustomerModel
获取数据。
如果是,那么Ecto 2.x通过
支持from customer in {"customers", Qber.V1.CustomerModel}, …
答案 1 :(得分:-1)
model = queryable
IO.inspect model
Map.values(model.__struct__.__meta__)
[Ecto.Schema.Metadata, nil, {nil, table_name}, :built] = Map.values(model.__struct__.__meta__)
table = table_name
所以我这样实现了它。