创建和验证输入数据
要将新记录插入我们的tasks
表中,请运行此代码:
task = %Taskers.Tasks{}
Taskers.Repo.insert(task)
要将数据插入我们的数据库中,我们称为insert
。这是使用ECTO与我们的数据库交谈的模块。成功的插入将返回元组,这样的插入:
{:ok, %Taskers.Tasks{__meta__: #Ecto.Schema.Metadata<:loaded, "tasks">, title: nil, id: 1, ...}}
:ok
原子可用于模式匹配目的,以确保插入成功。
{:ok, tasks} = Taskers.Repo.insert person
注意:在ECTO中,您可能希望在进入数据库之前验证更改。为此,ecto具有changesets。 更改集将仅允许通过定义的参数,并且列表中未忽略的任何内容将被忽略。
由于未传递所需值,因此此插入将失败。第一个返回元素是元组:error
,其中包含错误的细节
我们可以通过进行一些模式匹配来访问这些错误消息:
注意: 由于更改有错误,因此没有记录 中的任务表。有关处理更改的更好方法,请使用Turple上的案例语句。
以更对人类友好的方式显示这些错误消息,我们可以使用Ecto.Changeset.traverse_errors/2:
This will return the following output:
%{
user_id: ["can't be blank"],
title: ["can't be blank"],
}