Rails FormHelper 每个单选框和标签

Rails FormHelper each radio and label

我正在使用 rails 5.1.2 和 ruby 2.2.6。我试图在集合上编写一个 each 循环,并在我的 erb 视图中为它生成一个 rabio 按钮和一个相应的标签。到目前为止,我得出了这个令人不满意的结果:

<% @idea.discussions.each do |discussion| %>
  <%= radio_button_tag :discussion, discussion.id %>
  <%= label_tag "discussion_" + discussion.id.to_s, discussion.title %>
<% end %>

这会为集合中的一个元素生成以下 HTML:

<input name="discussion" id="discussion_3" value="3" type="radio">
<label for="discussion_3">Main discussion</label>

令我不满意的是 label_tag 的第一个参数,因为我手动构建了 label 标记的 for 属性的值。 rails 的方法是什么?

你也可以试试:

<% @idea.discussions.each do |discussion| %>
  <label for="discussion-<%= discussion.id%>">
    <span><%= discussion.title %></span>
    <%= radio_button_tag "discussions[discussion_id]", discussion.id, false, { id: "discussion-#{discussion.id}"} %>
  </label>
<% end %>