我有一个users
表,其中布尔字段处于活动状态。我在数据库中有active: true
的用户。查询后面的问题没有给出任何结果
@users = User.where(active: true) #this results to empty array
但如果我给1而不是真,那么我得到结果。
@users = User.where(active: 1) #this gives correct result
我不明白为什么真的不起作用。
答案 0 :(得分:0)
SQLite没有单独的布尔存储类。代替, 布尔值存储为整数0(假)和1(真)。
您可以查看data type of SQLite here。
因此,您使用有效的true保存用户,但在数据库active
字段中的值为1
,这就是User.where(active: 1)
有效的原因。