我有这段代码将记录插入数据库。完成此操作后,我需要将新记录的ID传递给客户端。
msg_record = %Message{
fromEmail: params["fromEmail"],
body: params["body"],
room: room_id
}
Repo.insert!(msg_record)
问题是,执行此操作后msg_record.id
仍然为空。
在Rails中,我会做msg_record.reload.id
- 是否有一些等效的方法?
答案 0 :(得分:2)
我想我的文档看起来不太好。
这可以在HexDocs on Ecto:
中找到IEX>天气=%天气{temp_lo:0,temp_hi:23}
IEX> Repo.insert!(天气)
将天气持续到数据库后,它将返回一个新的%Weather {}副本,并设置主键(id)。我们可以使用此值从存储库中读取结构:
所以在我的情况下,我可以简单地重新分配变量:
msg_record = Repo.insert!(msg_record)