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