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 ответ

Решение

Догадаться! Я не перезапустил приложение после этого изменения, которое вызвало проблему, описанную выше.

Прекрасный пример "Вы пытались выключить и снова включить?" Это был долгий день...

Другие вопросы по тегам