【发布时间】:2016-01-26 08:22:35
【问题描述】:
假设我有这个查询:
User
|> where([u], u.name == "John" or u.age == 24)
我想把它变成一个函数,它可以获取字段名称和字段值的关键字列表并动态生成相同的查询。函数定义如下所示:
def where_any(query, field_names_to_values) do
...
end
Elixir 和 Ecto 可以做到这一点吗?
【问题讨论】:
-
我在我的库中使用@jisaacstone 建议的宏进行这种可组合性。有关示例,请参见 github.com/rcdilorenzo/filtrex/blob/master/test/ast_test.exs。