2013-04-18 2 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/> 

Я хотел бы быть в состоянии иметь эти опции отображаются в моем контроллере под category массива, поэтому я назвал все варианты category[]. То, что я хотел бы достичь, это ибо label_tag и поля, чтобы узнать друг о друге:check_box_tag с label_tag нажмите действия

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

здесь, если я нажму на словах, коробка также получает чек. Я попытался выполнить это со значениями на label_tag, но он, похоже, не работает. Можно ли это сделать?

ответ

23

Один из способов сделать это, чтобы добавить label элементы в ручном режиме (не erb), а также добавить флажки и содержание этикетки, как дети:

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

Хотя это действительно изменяет структуру HTML несколько, и может повлиять на ваш макет/css.

+0

это работает отлично ... просто хотел бросить головы кому-либо еще просматривая это =) – Dudo

6

Хорошо, я довольно поздно, чтобы ответить на этот вопрос. Я искал решение той же проблемы любопытное и придумал следующее:

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

Это создаст HTML следующим образом:

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