如何重新加载ecto记录?

时间:2017-01-29 21:40:59

标签: elixir phoenix-framework ecto

我有这段代码将记录插入数据库。完成此操作后,我需要将新记录的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 - 是否有一些等效的方法?

1 个答案:

答案 0 :(得分:2)

我想我的文档看起来不太好。

这可以在HexDocs on Ecto

中找到
  

IEX>天气=%天气{temp_lo:0,temp_hi:23}

     

IEX> Repo.insert!(天气)

     

将天气持续到数据库后,它将返回一个新的%Weather {}副本,并设置主键(id)。我们可以使用此值从存储库中读取结构:

所以在我的情况下,我可以简单地重新分配变量:

msg_record = Repo.insert!(msg_record)