2016-01-26 2 views
2

У меня есть модель, как:Учитывая модель перечисление, как создать кнопку радио группы

class User < ActiveRecord::Base 
    enum :status [:banned, :registered, :trial, :pending] 
end 

На моей странице редактирования, я хочу, чтобы показать список 4 переключателей и предварительно выбрать переключатель который в настоящее время установлен для пользователя.

Как это сделать?

ответ

1

Rails создает метод класса с использованием имени множественного атрибута при использовании enum. Метод возвращает key value pair строк, которые вы определили, и какие целые числа они сопоставляют. Таким образом, вы могли бы сделать что-то вроде этого:

<% User.status.keys.each do |status| %> 
    <%= f.radio_button :status, status %> 
    <%= f.label status.to_sym %> 
<% end %> 
+0

Вы можете использовать 'User.statuses.each_key', который быстрее, чем' keys.each'. Кроме того, необходимо ли преобразовать статус в символ? 'f.label status.to_sym'. Я думаю, что это избыточно. – Mohamad

3
<%= form_for @user do |f| %> 
    <%= f.collection_radio_buttons :status, User.statuses, :first, :first %> 
    <%= f.submit %> 
<% end %> 

Ref

Смежные вопросы