Activerecord:使用true查询不会显示布尔字段的任何结果

时间:2016-12-19 13:56:56

标签: ruby-on-rails ruby-on-rails-4 activerecord

我有一个users表,其中布尔字段处于活动状态。我在数据库中有active: true的用户。查询后面的问题没有给出任何结果

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

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

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

我不明白为什么真的不起作用。

1 个答案:

答案 0 :(得分:0)

  

SQLite没有单独的布尔存储类。代替,   布尔值存储为整数0(假)和1(真)。

您可以查看data type of SQLite here

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