2013-04-18 9 views
10
<%= f.label :category %><br/> 
<%= check_box_tag 'category[]', '1', false %> 
<%= label_tag 'community', 'community', class: 'category_select', value: '1' %> 
<%= check_box_tag 'category[]', '2', false %> 
<%= label_tag 'food', 'food', class: 'category_select', value: '2' %> 
<%= check_box_tag 'category[]', '3', false %> 
<%= label_tag 'music', 'music', class: 'category_select', value: '3' %><br/> 
<%= check_box_tag 'category[]', '4', false %> 
<%= label_tag 'education', 'education', class: 'category_select', value: '4' %> 
<%= check_box_tag 'category[]', '5', false %> 
<%= label_tag 'theatre', 'theatre', class: 'category_select', value: '5' %> 
<%= check_box_tag 'category[]', '6', false %> 
<%= label_tag 'art', 'art', class: 'category_select', value: '6' %><br/> 
<%= check_box_tag 'category[]', '7', false %> 
<%= label_tag 'culture', 'culture', class: 'category_select', value: '7' %> 
<%= check_box_tag 'category[]', '8', false %> 
<%= label_tag 'family', 'family', class: 'category_select', value: '8' %> 
<%= check_box_tag 'category[]', '9', false %> 
<%= label_tag 'sports', 'sports', class: 'category_select', value: '9' %><br/> 

Ich möchte in der Lage sein, diese Optionen in meinem Controller erscheinen unter einem category Array zu haben, so nannte ich alle Optionen category[]. Was ich erreichen möchte, denn die umeinander zu wissen label_tag und Felder ist:check_box_tag mit label_tag Klick Aktion

<%= check_box_tag 'community', 'community', false %> 
<%= label_tag 'community', 'community', class: 'category_select' %> 

hier, wenn ich auf die Worte klicken, auch die Box wird geprüft. Ich habe versucht, dies mit den Werten auf der label_tag zu erreichen, aber es scheint nicht zu funktionieren. Kann dies erreicht werden?

Antwort

23

Eine Möglichkeit, dies zu tun, ist die label Elemente in manuell hinzufügen (ohne erb), und fügen Sie das Kontrollkästchen und Label-Inhalt als Kinder:

<label class="category-select"> 
    <%= check_box_tag 'category[]', '1', false %> 
    Community 
</label> 
... 

Obwohl, dass die Struktur des HTML etwas ändert, und kann Auswirkungen auf Ihr Layout/CSS haben.

+0

das perfekt funktioniert ... nur ein Heads-up auf jemanden werfen wollte sonst Browsing dieses =) – Dudo

6

Ok, ich bin ziemlich spät, um das zu beantworten. Ich war für gleiche irgendwie Problem suchen Lösung und kam mit folgenden:

<%= label_tag "some_name", raw("#{check_box_tag('some_name')} Click label to check") %> 

Dies würde html wie folgt erstellen:

<label for="some_name"><input id="some_name" name="some_name" type="checkbox" value="1"> Click label to check</label> 
Verwandte Themen