我想知道这两个对象 -> Object 和 %Object{} 之间有什么区别。
1)
def get_parents() do
Object
|> select([m], {m.id, m.name})
|> where([m], is_nil(m.parent_id))
|> Repo.all()
end
Run Code Online (Sandbox Code Playgroud)
def get_parents() do
%Object{}
|> select([m], {m.id, m.name})
|> where([m], is_nil(m.parent_id))
|> Repo.all()
end
Run Code Online (Sandbox Code Playgroud)
我将不胜感激的解释。
Object是一个原子,代表module。
%Object{}是在模块中声明的结构Object对象。
Ecto.Query.select/3具有作为第一个参数传递的原子和结构的子句,基本上,当传递原子时,将创建默认结构并进一步传递,如下所示(真正的实现要复杂得多)
def select(module, binding, expr) when is_atom(module),
do: select(%module{}, binding, expr)
Run Code Online (Sandbox Code Playgroud)
我强烈鼓励您在成为 . 语言之前先学习语言基础知识Ecto。
| 归档时间: |
|
| 查看次数: |
107 次 |
| 最近记录: |