我试图允许传入一个字段名称并动态地在一个Ecto查询表达式中运行它,如下所示:
def count_distinct(query, field_name) when is_binary(field_name) do
query
|> select([x], count(Map.fetch!(x, field_name), :distinct))
end
Run Code Online (Sandbox Code Playgroud)
但是,我收到此编译错误:
(Ecto.Query.CompileError) `Map.fetch!(x, field_name)` is not a valid query expression
Run Code Online (Sandbox Code Playgroud)
有没有办法实现这个目标?
假设我有这个问题:
User
|> where([u], u.name == "John" or u.age == 24)
Run Code Online (Sandbox Code Playgroud)
我想把它变成一个函数,可以获取字段名称和字段值的关键字列表,并动态生成相同的查询.函数定义看起来像这样:
def where_any(query, field_names_to_values) do
...
end
Run Code Online (Sandbox Code Playgroud)
Elixir和Ecto有可能吗?
我试图找到一种方法来拥有可以切换 NERDTree 的正常模式映射,但是在切换时,告诉 NERDTree 查找当前文件。
我知道NERDTreeToggleand NERDTreeFind,我想要做的基本上是这两个命令的组合。
这是我的用例:
<C-\>NERDTree 将打开当前文件。<C-\>,NERDTree 将关闭。我正在尝试将文件转换为特定格式,因此我可以将其删除.我知道保存到磁盘并指定扩展名以将其转换为另一种格式的技术,如下所示:
img.write("another_filename.jpg")
Run Code Online (Sandbox Code Playgroud)
我想在转换过程中不必触摸磁盘.
还有另外一种方法吗?
我正在尝试使用带有Ecto的多行INSERT查询插入800个更改集.我正在使用postgres.我看到postgrex现在支持这个.有可能还有Ecto吗?
如果可能的话,我也愿意通过准备好的声明这样做.