Ruby on rails 每个收音机和标签的导轨

Ruby on rails 每个收音机和标签的导轨,ruby-on-rails,formhelper,Ruby On Rails,Formhelper,我正在使用rails 5.1.2和ruby 2.2.6。我试图在一个集合上编写一个每个循环,并在erb视图中为它生成一个rabio按钮和相应的标签。到目前为止,我得到了一个不令人满意的结果: <% @idea.discussions.each do |discussion| %> <%= radio_button_tag :discussion, discussion.id %> <%= label_tag "discussion_" + discussio

我正在使用rails 5.1.2和ruby 2.2.6。我试图在一个集合上编写一个
每个
循环,并在
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>

主要讨论
让我不满意的是
标签
的第一个参数,因为我手动为
标签
属性构建
的值。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 %>


这是什么标签?在rails API中找不到它。此外,我的ruby解释器看起来不像
单选按钮标记中的
字符。我会错过什么?@Rémi Doolaeghe我已经修复了代码示例
label for=..
中的错误键入,它会包裹你的单选按钮。你有双引号中的
#
符号吗在double quoutes中,Ruby字符串插值方法使用。这是一个有效的解决方案,所以我接受它。不过,我还有一个额外的需要。因为我的目标是生成标签,所以我需要标签和收音机是兄弟姐妹,而不是父子关系。由于我需要根据收音机的状态(
已选中
)来设置标签样式,而且CSS3没有父选择器,所以我被卡住了。。。