Rails и MySQL: неправильная интерпретация логических значений
Я использую Rails 5.0 с MySQL в качестве базы данных.
У меня есть существующая таблица "пользователи", в которой я храню информацию о том, любит ли пользователь готовить в столбце "likes_to_cook". Rails интерпретирует этот столбец как логическое, и это ожидаемое поведение.
Я добавил новый столбец "likes_hot_meals" через миграцию:
add_column :users, :likes_hot_meals, :boolean, null: false, default: true
Миграция сработала, единственная проблема, с которой я столкнулся сейчас, заключается в том, что этот новый столбец интерпретируется не как логическое значение, а как целое число. Этот результат равен 1/0 в интерфейсе и API вместо true/false, и это не то, что я хочу.
Вот как выглядят столбцы в базе данных:
mysql> describe users;
+-----------------------------------------------------+--------------+------+-----+--------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------------------------------------+--------------+------+-----+--------------+----------------+
| likes_to_cook | tinyint(1) | NO | | 1 | |
| likes_hot_meals | tinyint(1) | NO | | 1 | |
+-----------------------------------------------------+--------------+------+-----+--------------+----------------+
У кого-нибудь есть объяснение, почему это происходит и как это можно исправить? Будем весьма признательны! Благодарю.
1 ответ
Догадаться! Я не перезапустил приложение после этого изменения, которое вызвало проблему, описанную выше.
Прекрасный пример "Вы пытались выключить и снова включить?" Это был долгий день...