【发布时间】:2017-03-14 16:44:46
【问题描述】:
我正在使用带有 MySQL 作为数据库的 Rails 5.0。
我有一个名为“users”的现有表,其中存储了用户是否喜欢在“likes_to_cook”列中烹饪。此列被 Rails 解释为布尔值,这是预期的行为。
我通过迁移添加了一个新列“likes_hot_meals”:
add_column :users, :likes_hot_meals, :boolean, null: false, default: true
迁移成功了,我现在唯一的问题是这个新列没有被解释为布尔值,而是一个整数。这个结果在接口和 API 中是 1/0 而不是真/假,这不是我想要的。
数据库中的列如下所示:
mysql> describe users;
+-----------------------------------------------------+--------------+------+-----+--------------+----------------+
| Field | Type | Null | Key | Default | Extra |
+-----------------------------------------------------+--------------+------+-----+--------------+----------------+
| likes_to_cook | tinyint(1) | NO | | 1 | |
| likes_hot_meals | tinyint(1) | NO | | 1 | |
+-----------------------------------------------------+--------------+------+-----+--------------+----------------+
有没有人解释为什么会发生这种情况以及如何解决?将不胜感激!谢谢。
【问题讨论】:
-
mysql 的
boolean字段版本是tinyint。
标签: mysql ruby-on-rails rails-migrations