■member_controller.ex
[ruby]
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
[/ruby]
■new.html.eex / edit.html.eex
[ruby]
<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)) %>
[/ruby]
■form.html.eex
[ruby]
<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>
[/ruby]