ruby Datamapper: получить следующую запись из коллекции - PullRequest
0 голосов
/ 14 марта 2012

Как я могу получить следующую запись из коллекции при циклическом просмотре коллекции? например.

for record in collection
  current_value = record.value
  next_value    = record.next.value #==> Would like this!
  # more stuff with record
end

Ответы [ 2 ]

1 голос
/ 15 марта 2012

Посмотрите на Enumerable#each_cons (DataMapper::Collection включает Enumerable):

collection.each_cons(2) do |a|
  #here a is a 2 element array:
  current_value = a[0]
  next_value    = a[1] #(or just use the array elements directly)

end

с использованием each_cons означает, что вам не нужно беспокоиться о проверкепоследний элемент в коллекции.

Также существует аналогичный each_slice, который дает непересекающиеся группы из коллекции.

1 голос
/ 14 марта 2012

Вы должны быть в состоянии сделать это так:

collection.each_with_index do |record, index|
  current_value = record.value
  next_value    = collection[index+1].value
  # more stuff
end
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...