Изменение типа поля с переключателя на переключатель в _form.html.erb (Ruby on Rails 3) - PullRequest
0 голосов
/ 03 сентября 2011

Я пытаюсь изменить поле check_box на поле radio_button, чтобы заменить значение true / false перечислением. Сгенерированный скаффолдом код был следующим:

<!%= f.label :status %><br />
<!%= f.check_box :status %>

И я попытался заменить его следующим:

<%= f.radio_button 'status', '0' %><%= f.label :status ,'Public' %><br />
<%= f.radio_button 'status', '1' %><%= f.label :status ,'Protected' %><br />
<%= f.radio_button 'status', '2' %><%= f.label :status ,'Private' %>

В MySQL поле 'status' - это tinyint (1), поэтому с точки зрения типа БД все должно быть в порядке. Однако оценка полей в show.html все еще имеет значение true / false, а не ожидаемые значения - 0,1,2.

Я думаю, что это поле настроено как check_box где-то еще в конфигурациях или коде, выполненном Rails, но где оно? Можно ли вообще делать такие изменения? Если нет, то каков еще один безболезненный способ сделать это?

1 Ответ

0 голосов
/ 03 сентября 2011

Tinyint (1) отображает логическое значение в рельсах.

http://www.ruby -forum.com / тема / 201859

Вы должны создать миграцию и изменить поле на целое число, если хотите использовать его как целое число.

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