rails活动记录遍历行

时间:2011-11-20 01:59:39

标签: ruby-on-rails activerecord

我正在使用.where()方法访问数据库表。这应该返回许多行。如何查看第一行或第二行。我知道我可以使用.each方法遍历所有行,但如果我只是想访问某一行会怎样。我是rails的新手,很抱歉这个简单的问题。

2 个答案:

答案 0 :(得分:5)

要获得第一行,您只需使用.first

即可
Model.where(:state => "active").first

.last的工作方式相同:

Model.where(:state => "active").last

要获取第n行,请将[]与基于0的索引一起使用,与任何其他数组一样

Model.where(:state => "active")[1] #second result

答案 1 :(得分:1)

获得一组结果后,您只需使用[]方法引用各行。

http://www.ruby-doc.org/core-1.9.3/Array.html#method-i-5B-5D

results = YourClass.where(:foo => 'bar').all
results[0] # the first result
results[1] # the 2nd

# and so on until
results[results.length - 1] # the last item in the array
results[results.length]     # out of bounds, and returns nil

# you can also use negative numbers to count backwards
results[-1] # the last element
results[-2] # the 2nd from last