Как флажки работают в Rails? - PullRequest
5 голосов
/ 31 мая 2011

Мне было интересно, как флажки работают в Rails? Какая таблица будет внутри базы данных (целое число, строка и т. Д.)? Как бы вы дали 3 различных значения для флажков, и пользователь может выбрать только 1 (любимый цвет: красный, зеленый или синий)?

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

Спасибо.

1 Ответ

4 голосов
/ 31 мая 2011

Существует различие между флажками и базой данных. Флажки HTML. База данных подключена к вашим моделям и не имеет никакого отношения к флажкам.

Когда вы используете флажок в представлении HTML, ваша форма отправит некоторый параметр. По умолчанию этот параметр будет иметь значение «1» (как String). Помощники Rails также создают дополнительный скрытый ввод, который отправляет значение «0» с тем же именем, что и вход флажка. При разборе параметров Rails выбирает первое значение, поэтому данному параметру присваивается значение «1», если флажок установлен, и значение «0», если его нет.

Теперь значение, сохраняемое в базе данных, зависит от типа атрибута в вашей модели. Если вы определили данное поле как логическое, то оно будет сохранено как логическое (есть некоторая магия, поскольку строка «0» не считается «ложной» в ruby), если вы определите атрибут как целое число, то оно будет иметь значение 1 или 0, и если это строка, у вас будет "1" или "0".

Об этих 3 значениях для флажка я бы использовал <select> или переключатель.

Red:   <input type="radio" name="colour" value="red" checked="checked"/>
Green: <input type="radio" name="colour" value="green" />
Blue:  <input type="radio" name="colour" value="blue" />

См. Метод ActionView::Helpers::FormHelper#radio_button.

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