Activerecord:与True查询有关布尔字段的任何结果



我有一个带有布尔字段的users表。我在数据库中使用active: true有用户。问题之后,查询没有给出任何结果

@users = User.where(active: true)  #this results to empty array

但是,如果我给出1而不是true,那么我会得到结果。

@users = User.where(active: 1)  #this gives correct result

我不明白为什么true不起作用。

sqlite没有单独的布尔存储类。反而, 布尔值存储为整数0(false)和1(true)。

您可以在此处检查SQLite的数据类型。

因此,您可以使用Active true保存用户,但是在数据库active字段中具有值1,这就是User.where(active: 1)工作的原因。

最新更新