我有一个带有布尔字段的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)
工作的原因。