Существует различие между флажками и базой данных. Флажки 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
.