入门精神病和ECTO第4部分
#网络开发人员 #编程 #database #elixir

创建和验证输入数据

要将新记录插入我们的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"],
 }