2017-01-29 4 views
1

데이터베이스에 레코드를 삽입하는 코드가 있습니다. 이 작업을 마친 후 새 레코드의 ID를 클라이언트에 전달해야합니다.엑토 레코드를 다시로드하는 방법은 무엇입니까?

msg_record = %Message{ 
    fromEmail: params["fromEmail"], 
    body: params["body"], 
    room: room_id 
    } 
    Repo.insert!(msg_record) 

이 문제는,이 일을 한 후 msg_record.id은 여전히 ​​null입니다.

레일즈에서 할 수있는 일은 msg_record.reload.id입니다. 몇 가지 동일한 방법이 있습니까?

답변

2

나는 문서를 충분히 잘 보지 못했을 것 같다.

HexDocs on Ecto에서 발견된다 :

IEX> 날씨 = % 날씨 {temp_lo : 0, temp_hi : 23}!

IEX> Repo.insert (날씨)

후 데이터베이스에 날씨를 지속하면 기본 키 (ID)가 설정된 % Weather {}의 새 복사본을 반환합니다. 우리는 저장소에서 구조체 다시 읽어이 값을 사용할 수 있습니다

msg_record = Repo.insert!(msg_record) 
: 내 경우에 따라서

을, 나는 단순히 가변적이고을 재 할당 할 수 있습니다

관련 문제