Rails - радио-кнопки для коллекционных наборов - PullRequest
9 голосов
/ 11 ноября 2010

У меня есть следующее, которое выводит поле выбора:

<%= f.label :request_type_id %><br />
<% requestTypes = RequestType.all %>
<%= f.collection_select :request_type_id, requestTypes, :id, :title, :prompt => true %>

Какой метод рельсов используется вместо вывода кнопок радио?

Ответы [ 6 ]

15 голосов
/ 11 ноября 2010

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

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

Или в хамл в случае, если это предпочтительнее, чем erb:

- RequestType.all.each do |rt|
    = f.radio_button :request_type_id, rt.id
    = f.label :request_type_id, rt.title
6 голосов
/ 03 февраля 2016

В Rails 4 есть collection_radio_buttons для этого:

<%= f.collection_radio_buttons :request_type_id, RequestType.all, :id, :title %>
2 голосов
/ 13 марта 2017

Пример использования 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 %>
1 голос
/ 21 марта 2013

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

В контроллере:

@request_types = RequestType.all

В форме:

<%= f.association :request_type, collection: @request_types, as: :radio_buttons %>
0 голосов
/ 11 ноября 2010

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

0 голосов
/ 11 ноября 2010

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...