2017-08-12 73 views
0

我正在使用rails 5.1.2和ruby 2.2.6。我試圖在集合上編寫一個each循環,並在我的erb視圖中爲它生成一個rabio按鈕和相應的標籤。到目前爲止,我來到這個不能令人滿意的結果:Rails FormHelper每個收音機和標籤

<% @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的第一argment,如我手動構建label標記的for屬性的值。什麼是鐵路方式?

回答

1

您也可以嘗試:

<% @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 %> 
+0

這是什麼'label_for'標籤?無法在Rails API中找到它。此外,我的ruby解釋器似乎不像'radio_button_tag'中的'#'字符。我可能錯過了什麼? –

+0

@RémiDoolaeghe 我已經修復了代碼示例中的錯誤類型標籤= ....它包裹了你的單選按鈕。 你在雙引號中有'#'符號嗎? Ruby字符串插值方法使用double-quoutes中的#。 – cnnr

+0

這是一個可行的解決方案,所以我會接受它。儘管如此,我還有其他需求。由於我的目標是生成標籤,因此我需要標籤和收音機成爲兄弟姐妹,而不是父母 - 孩子。因爲我需要根據收音機的狀態('checked')來設置我的標籤風格,CSS3沒有父母選擇器,所以我被卡住了...... –

相關問題