从ActiveRecord中的一系列ID中搜索

时间:2012-05-27 10:11:29

标签: ruby-on-rails ruby ruby-on-rails-3

如何在范围内做这样的事情?

User.find(14000..14500)

我需要选择一定范围的用户开始和完成特定ID。

4 个答案:

答案 0 :(得分:51)

使用where方法:

User.where(id: 14000..14500)

答案 1 :(得分:6)

你也可以这样做:

User.find_by_id(14000..14500)

答案 2 :(得分:2)

您可以使用作用域范围定义:

User.find(1)       # returns the object for ID = 1
User.find([1])

User.find(1, 2, 9) # returns an array for objects with IDs in (1, 2, 9)
User.find([1, 2, 9])

User.scoped(:conditions => { :id => 1..9})

答案 3 :(得分:2)

试试这个

User.find((start..end).to_a)

前 -

User.find((14000..14500).to_a)