2011-01-31 61 views
1

我的數組:如何找到數組中最後一項的索引?

(rdb:381) pp params[:payments] 
{"0"=>{":amount_paid"=>"100.00", ":date_paid"=>"2/27/2008"}, 
"1"=>{":amount_paid"=>"80.00", ":date_paid"=>"3/27/2008"}, 
"2"=>{":amount_paid"=>"100.00", ":date_paid"=>"5/8/2008"}} 

我不相信這是一個對象。執行params[:payments].last返回此:

NoMethodError Exception: undefined method `last' for #<ActiveSupport::HashWithIndifferentAccess:0x1065e8448> 

我試圖找到最後一個項目的索引。在這種情況下,答案是,或「2」

回答

4

嘿,你的數組實際上是一個哈希值。你也許可以通過類似params[:payments].keys.map(&:to_i).max.to_s

得到最後一個密鑰的索引。將實際數組傳遞回來會更好。你如何生成:payments選項?

+0

WOW!直到現在,我從來不認識哈希和數組之間的差異。非常感謝你做的這些!! – Trip 2011-01-31 22:58:55

0

你的值是一個散列,而不是一個數組,所以它沒有排序或索引,除非你在Ruby 1.9上

+0

哈希從1.9 – Nakilon 2011-01-31 23:27:56

相關問題