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?"的一个很好的例子
这是漫长的一天...
我正在使用 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?"的一个很好的例子 这是漫长的一天...