■member_controller.ex
def new(conn, _params) do changeset = Portal.change_member(%Member{}) teams = Portal.list_teams() render(conn, "new.html", changeset: changeset, teams: teams) end def edit(conn, %{"id" => id}) do member = Portal.get_member!(id) teams = Portal.list_teams() changeset = Portal.change_member(member) render(conn, "edit.html", member: member, changeset: changeset, teams: teams) end
■new.html.eex / edit.html.eex
<h2>New Member</h2> <%= render "form.html", Map.put(assigns, :action, member_path(@conn, :create)) %> <h2>Edit Member</h2> <%= render "form.html", Map.put(assigns, :action, member_path(@conn, :update, @member)) %>
■form.html.eex
<div class="form-group"> <%= label f, :teams, class: "control-label" %> <%= select f, :team_id, Enum.map(@teams, &{&1.team_name, &1.id}) , class: "control-label" %> <%= error_tag f, :team %> </div> <div class="form-group"> <%= label f, :gender, class: "control-label" %> <%= select f, :gender_id, ["男性": "1", "女性": "2", "その他": "0"], class: "control-label" %> <%= error_tag f, :team %> </div>