小编Jos*_*ken的帖子

具有查询表达式中的动态字段名称的通用可组合Ecto查询

我试图允许传入一个字段名称并动态地在一个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)

有没有办法实现这个目标?

elixir ecto

10
推荐指数
1
解决办法
2220
查看次数

在由OR连接的where子句中组成具有多个列的Ecto查询

假设我有这个问题:

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有可能吗?

elixir ecto

9
推荐指数
1
解决办法
1426
查看次数

切换 NERDTree 并在切换时打开到当前文件的一种映射

我试图找到一种方法来拥有可以切换 NERDTree 的正常模式映射,但是在切换时,告诉 NERDTree 查找当前文件。

我知道NERDTreeToggleand NERDTreeFind,我想要做的基本上是这两个命令的组合。

这是我的用例:

  1. 当 NERDTree 未打开时,我可以点击<C-\>NERDTree 将打开当前文件。
  2. 然后我可以再次点击<C-\>,NERDTree 将关闭。

vim nerdtree

7
推荐指数
3
解决办法
2993
查看次数

RMagick - 将文件转换为另一种格式而不保存到磁盘

我正在尝试将文件转换为特定格式,因此我可以将其删除.我知道保存到磁盘并指定扩展名以将其转换为另一种格式的技术,如下所示:

img.write("another_filename.jpg")
Run Code Online (Sandbox Code Playgroud)

我想在转换过程中不必触摸磁盘.

还有另外一种方法吗?

ruby rmagick image-conversion

5
推荐指数
1
解决办法
2088
查看次数

使用Ecto批量插入

我正在尝试使用带有Ecto的多行INSERT查询插入800个更改集.我正在使用postgres.我看到postgrex现在支持这个.有可能还有Ecto吗?

如果可能的话,我也愿意通过准备好的声明这样做.

elixir ecto

5
推荐指数
1
解决办法
3511
查看次数

标签 统计

ecto ×3

elixir ×3

image-conversion ×1

nerdtree ×1

rmagick ×1

ruby ×1

vim ×1