Ruby on rails Rails—其中ID数组上的条件不为';不要运行整个阵列

Ruby on rails Rails—其中ID数组上的条件不为';不要运行整个阵列,ruby-on-rails,arrays,ruby-on-rails-5,conditional-statements,where-clause,Ruby On Rails,Arrays,Ruby On Rails 5,Conditional Statements,Where Clause,在我的应用程序中,我正在使用ID(大约1000个ID)在我的用户模型中执行where条件,如下所示: ids = "1,2,3,4,5,6,... # to 1000" users = User.where(id: ids.split(',').map(&:to_i) ) repl.it中的Ruby输出 但当我运行这个时,它只运行前108个ID,而忽略其余ID 是否有任何限制或我做错了什么 附言: 它不返回任何错误,只运行前108个ID SQL输出 User.where(id:id.s

在我的应用程序中,我正在使用ID(大约1000个ID)在我的
用户
模型中执行
where
条件,如下所示:

ids = "1,2,3,4,5,6,... # to 1000"
users = User.where(id: ids.split(',').map(&:to_i) )
repl.it中的Ruby输出

但当我运行这个时,它只运行前108个ID,而忽略其余ID

是否有任何限制或我做错了什么

附言: 它不返回任何错误,只运行前108个ID

SQL输出
User.where(id:id.split(',')).to_sql

SELECT `user`.* FROM `user` WHERE `user`.`id` IN (1,2,3,4....1000)

任何提示都将受到赞赏并提前感谢

ids
是一个整数数组-为什么要将它们拆分并转换为整数?这不是一个整数数组,而是一个字符串。请尝试使用
User.where(id:ids.split(','))
,无论列是integer还是varchar,Rails都会在使用
where
@Rubioli时处理这些问题:它运行所有列。正如您生成的查询所证明的那样。也许数据库中有那么多记录。这里有这么多问题,为什么首先要将ID存储为逗号分隔的字符串?如果它是一些遗留的垃圾,并且已经做出了决定,为什么不使用子查询并获取字符串,然后在数据库中使用类似于
regexp\u split\u to\u array