2010-11-11 3 views

ответ

15

Для переключателей вы должны выполнять итерацию и выводить каждый переключатель и его ярлык. На самом деле это действительно легко.

<% RequestType.all.each do |rt| %> 
    <%= f.radio_button :request_type_id, rt.id %> 
    <%= f.label :request_type_id, rt.title %> 
<% end %> 

Или в haml в случае его предпочтительнее Еврорадио:

- RequestType.all.each do |rt| 
    = f.radio_button :request_type_id, rt.id 
    = f.label :request_type_id, rt.title 
+0

Спасибо, это сработало отлично, но мне действительно нужно было работать h ярлык FOR, чтобы он соответствовал переключателю. – AnApprentice

+0

@AnApprentice - Некоторые искали то же самое и нашли этот ответ: http://stackoverflow.com/a/4921732/247763 – derekerdmann

+0

Любая идея, как это сделать, но с фиксированными значениями. Я имею в виду вместо 'Model..all.each', у вас есть что-то вроде' for i в 0..5'? – Sebastialonso

0

Я не думаю, что в Rails есть опция по умолчанию, чтобы достичь этого; к счастью, плагины - ваш друг, и я думаю, что с simple_form очень легко.

0

Вот ваша кнопка радио вы можете ниже, как, например: -

<%= f.radio_button:request_type_id,'1',{"id","title"} %>id 
<%= f.radio_button:request_type_id,'2',{"id","title"} %>title 
1

Использование simple_form перл:

Контроллер:

@request_types = RequestType.all 

В форме:

<%= f.association :request_type, collection: @request_types, as: :radio_buttons %> 
0

В качестве примера, как использовать f.collection_radio_buttons с Enum в качестве коллекции:

<%= f.collection_radio_buttons :reason, MyEnum.statuses.map {|k,v| [k,k]}, :first, :last do |b| %> 
    <div class='your-class'> 
    <%= b.radio_button %> 
    <%= b.label %> 
    </div> 
<% end %> 
Смежные вопросы