2009-03-01 3 views
1

У меня есть веб-форма, созданная в Rails, которая спрашивает, есть ли у кого-нибудь дети или нет? Если я отправлю форму, она может быть вставлена ​​в db. Когда я редактирую форму, она не показывает, что она задана.Редактировать форму не возвращает выбранное значение

Например, поле

Всякий раз, когда я выбираю «Нет», а затем изменить форму еще раз, это показывает, что это поле, как «Да.» В db оно сохраняется как значение 1. Является ли это потому, что форма не может связывать значения 0 или 1 с «Да» или «Нет»? Я что-то пропустил в форме?

ответ

3

Я предполагаю, что вы используете MySql как свою базу данных?

Если это так, это связано с тем, что mysql не имеет типа bool. Вместо этого он использует TINYINT и устанавливает 1 в true и 0 на false.

Когда вы загружаете данные обратно в свою веб-форму, он должен работать нормально, но я бы посоветовал вам сделать только yes = 1 и no = 0 - это «стандарт» и идет против него, потому что нет причин просто собираться вызывают путаницу и страдания в будущем.

+0

PS: Это основано на моем опыте с mysql, который может быть устаревшим. Если у него действительно есть выделенный тип bool, или я только что ошибался, извините –

+0

+1, и в немного другой заметке, когда вы начинаете, вы должны работать с магией Rails, а не против нее. Таким образом, true должно быть 1, false должно быть 0 - в противном случае многие вещи могут не работать, как вы ожидаете. –

3

Почему вы даже используете для этого выбор? Простой флажок будет достаточным.

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