2017-03-13 3 views
3

현재 Ecto + Postgres를 사용하는 Phoenix 프로젝트에서 작업 중입니다. 주석을 작성할 때, 사용자 및 기사 인 belongs_to의 주석으로, 하나의 변경 집합을 생성하기 위해 여러 연관을 만드는 방법이 있습니까?Ecto build multiple assoc

이 의사

comment_changeset = build_assoc(article, :comment) 
       |> build_assoc(user, :comment) 

어떤 아이디어 같은 뭔가? 관련 데이터가있는 경우

답변

3

저스틴이 언급했듯이 put_assoc을 사용하면 내 머리 꼭대기에서 벗어날 수 있으므로이 기능을 사용해야한다고 생각합니다.

comment_changeset = 
    article 
    |> Ecto.build_assoc(:comment) 
    |> Ecto.Changeset.change() 
    |> Ecto.Changeset.put_assoc(:user, user) 
2

응용 프로그램 설치 방법에 따라 cast_assoc/3이 유용 하나 cast_assoc/3 또는 put_assoc/4

문서에서 관련 부분 즉

사용하려는 것 한 번에 부모 구조체와 함께 관리됩니다. 협회의 각면이 별도로 관리되는 경우 put_assoc/3을 사용하고 협회가 어떻게 보일지 직접 Ecto에 지시하는 것이 바람직합니다.