我有这段代码可以在数据库中插入一条记录。执行此操作后,我需要获取新记录的 id 以传递给客户端。
msg_record = %Message{
fromEmail: params["fromEmail"],
body: params["body"],
room: room_id
}
Repo.insert!(msg_record)
Run Code Online (Sandbox Code Playgroud)
问题是,这样做后msg_record.id仍然为空。
在 Rails 中我会做msg_record.reload.id- 有一些等效的方法吗?
我想我在文档上看起来不够好。
这可以在Ecto 上的 HexDocs 中找到:
iex> 天气 = %Weather{temp_lo: 0, temp_hi: 23}
iex> Repo.insert!(天气)
将天气保存到数据库后,它将返回一个新的 %Weather{} 副本,并设置了主键(id)。我们可以使用这个值从存储库中读取一个结构体:
所以就我而言,我可以简单地重新分配变量:
msg_record = Repo.insert!(msg_record)
Run Code Online (Sandbox Code Playgroud)