Rails 和 MySQL:布尔值的错误解释

Rails and MySQL: Wrong interpretation of boolean values

我正在使用 Rails 5.0 和 MySQL 作为数据库。

我有一个名为 "users" 的现有 table,我将用户是否喜欢烹饪存储在 "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            |                |
+-----------------------------------------------------+--------------+------+-----+--------------+----------------+

有人能解释为什么会发生这种情况以及如何解决吗?将不胜感激!谢谢

想通了!此更改导致上述问题后,我没有重新启动应用程序。

"Have you tried turning it off and on again?"的一个很好的例子 这是漫长的一天...