1 votes

Obtenir la position numérique d'un actif dans un tableau en Ruby on Rails

Je travaille avec une liste d'actifs, triés par ordre alphabétique (par une autre méthode). J'aimerais attribuer une valeur à la clé "position", qui indique essentiellement l'emplacement de ce bien particulier dans la liste ordonnée de tous les biens. Voici le code avec lequel je travaille actuellement (:position laissé vide volontairement) :

@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

Je vous remercie d'avance.

4voto

bta Points 22525

Si la liste est déjà triée (comme vous le mentionnez) et qu'elle est implémentée comme un tableau, vous pouvez utiliser la fonction Array::index pour déterminer l'indice numérique d'un élément du tableau.

Si vous essayez d'assigner des valeurs de position pour l'ensemble du tableau, vous pourriez utiliser quelque chose comme :

@active_resources.each_with_index {|asset,idx|
    @asset_data[asset.id][:position] = idx
}

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X