【问题标题】:Rails and MySQL: Wrong interpretation of boolean valuesRails 和 MySQL:布尔值的错误解释
【发布时间】: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


【解决方案1】:

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

“您是否尝试过将其关闭再打开?”的一个很好的例子 这是漫长的一天......

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-07
    • 1970-01-01
    相关资源
    最近更新 更多