Как я могу найти индекс последнего элемента в массиве? - PullRequest
1 голос
/ 01 февраля 2011

Мой массив:

(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 или "2"

Ответы [ 2 ]

4 голосов
/ 01 февраля 2011

Эй, ваш массив на самом деле хеш.Вы могли бы получить индекс последнего ключа, выполнив что-то вроде params[:payments].keys.map(&:to_i).max.to_s

. Было бы еще лучше передать реальный массив обратно.Как вы сгенерировали опцию :payments?

0 голосов
/ 01 февраля 2011

Ваше значение - Хэш, а не Массив, поэтому у него нет порядка или индексов, если вы не используете Ruby 1.9

...