Ruby on rails 每个收音机和标签的导轨
我正在使用rails 5.1.2和ruby 2.2.6。我试图在一个集合上编写一个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
每个
循环,并在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没有父选择器,所以我被卡住了。。。