假设我有一个模型,就像那样:
defmodule User do
use MyApp.Web, :model
schema "users" do
field :email, :string
field :first_name, :string
belongs_to :role, Role
has_many :comments, Comment
end
end
Run Code Online (Sandbox Code Playgroud)
用户结构将由关联和字段表示,如下所示:
model = %User{
__meta__: #Ecto.Schema.Metadata<:loaded, "users">,
comments: #Ecto.Association.NotLoaded,
email: "alex@google.com",
first_name: "alex",
role: #Ecto.Association.NotLoaded
}
Run Code Online (Sandbox Code Playgroud)
如何仅使用字段来获取基于此结构的地图?
asi*_*niy 17
Ecto定义__schema__模型的功能.因此,您可以使用此函数获取字段:
fields = User.__schema__(:fields)
Run Code Online (Sandbox Code Playgroud)
然后使用 Map.take/2
Map.take(model, fields)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1253 次 |
| 最近记录: |