Phoenix Framwork select tag

2018年5月21日 Posted by PURGE

■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>

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です