Получить числовую позицию актива в массиве в Ruby on Rails - PullRequest
1 голос
/ 08 июля 2010

Я работаю со списком активов, отсортированным по алфавиту (другим способом). Я хотел бы присвоить значение ключу "position", который, по сути, просто говорит, где именно этот конкретный актив появляется в упорядоченном списке всех активов. Вот код, с которым я работаю сейчас (: позиция оставлена ​​пустой специально):

@active_resources.each do |asset|
  @asset_data[asset.id] = {
    :name => asset.name,
    :services => asset.active_services.collect{|service| 
      {:duration => service.duration, :name => service.name, :id => service.id}
    },
    :position => 
  }
end

Заранее спасибо.

1 Ответ

4 голосов
/ 08 июля 2010

Если список уже отсортирован (как вы упомянули) и реализован в виде массива, вы можете использовать метод Array::index для определения числового индекса элемента в массиве.

Если вы пытаетесь назначить значения позиции для всего массива, вы можете использовать что-то вроде:

@active_resources.each_with_index {|asset,idx|
    @asset_data[asset.id][:position] = idx
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...