2017-08-12 17 views
0

私はレール5.1.2とルビー2.2.6で作業しています。私はeachループをコレクションに書こうとしていて、erbビューにrabioボタンとそれに対応するラベルを生成しています。これまでのところ、私はこの満足のいかない結果になった:Rails Form各無線とラベルを確認してください

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

これは、コレクションの一つの要素のために次のHTMLを生成:どのような私のために不満足であることはlabel_tagの最初のargmentある

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

を、として私は手動で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'タグとは何ですか?レールAPIでそれを見つけることができません。さらに、私のRubyインタプリタは 'radio_button_tag'の'# '文字に似ていないようです。何が私は逃したことができますか? –

+0

@RémiDoolaeghe コード例の 'label for = ....'にミスタイプを修正しました。あなたのラジオボタンをラップします。 '#'シンボルが二重引用符で囲まれていますか? Rubyの文字列補間法で二重引用符で囲む#。 – cnnr

+0

それは実用的な解決策ですので、私はそれを受け入れます。しかし、私にはさらなる必要性があります。私の目標はタブを生み出しているので、ラベルとラジオが親子ではなく兄弟である必要があります。ラジオのステータス( 'checked')に応じて私のラベルをスタイルする必要があるので、CSS3には親セレクタがありません。私は立ち往生しています... –

関連する問題