如何使用 Phoenix 在控制器 class 中显示地图或列表中的值

How to show values from map or list made in controller class with Phoenix

我正在尝试创建单选按钮。我知道如何按以下方式选择单选按钮。

  <%= label f, :gender_id %>
  <%= radio_button f, :gender_id, 1, checked: true %> Male
  <%= radio_button f, :gender_id, 2 %> Female
  <%= radio_button f, :gender_id, 0 %> Other

另一方面,我不知道如何显示标题。我在框架中没有性别模型。 我只想按性别地图或列表创建,如下所示。

<%= gender[1] %>   # Male
<%= gender[2] %>   # Female
<%= gender[0] %>   # Other

如何在控制器中创建一些性别列表或地图?

请告诉我一些建议。

正如文档中所述,Phoenix.HTML.Form.radio_button/4 creates the radio button itself, while Phoenix.HTML.Form.label/2 为其创建了一个标签。也就是说,假设在控制器中声明了相应的分配,您可能会执行如下操作。

# controller
@genders %{0 => "other", 1 => "male", 2 => "female"}
render(conn, "page.html", genders: @genders)
# or put it to assigns

# template
<% for {id, label} <- @genders do %>
  <%= radio_button f, :gender_id, id, checked: id == 1 %>
  <%= label f, :gender_id, id, do: label %>
<% end %>