2011-11-20 91 views
2

我正在使用.where()方法訪問數據庫表。這應該返回許多行。我如何查看第一行或第二行。我知道我可以使用.each方法來遍歷所有行,但如果我只想訪問某一行,該怎麼辦?我是新來的鐵路,所以很抱歉這個簡單的問題。rails活動記錄遍歷行

回答

5

爲了得到第一排,你可以用.first

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

.last的工作方式相同:

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

爲了得到第n行,使用[]與基於0指數,如同任何其他陣列一樣

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

謝謝,我是想已經和它返回nil。找出我的問題是我沒有將對象保存回數據庫。 – Keeto

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 
+0

一旦有了所有的結果,任何想法如何將一個特定列的所有值打印到單個字符串? – BKSpurgeon