Le 19 juin 2008 16:51, Tony Chauveau a écrit :

> Il y a quelques temps, j'ai pu voir que certains ici étaient très fort
> pour ordonner des tableaux. Ne trouvant pas comment m'y prendre pour
> classer correctement un hash, je viens demander vos lumières :
>
> Voici déjà le hash :
>
> :fields => {:login => { "fieldname" => "Login", "pos" => 3 }, :firstname
> => { "fieldname" => "Nom", "pos" => 1 }, :lastname => { "fieldname" =>
> "Prénom", "pos" => 2 }, :email => { "fieldname" => "Email",
> "vtype" => "email", "pos" => 4 }, :address => { "fieldname" =>
> "Adresse", "pos" => 5 }}
>
> Ce hash est ensuite utilisé en diverses occasions donc une fonction sur
> laquelle je sors les clés que je groupe par 2 dans un tableau. Celà
> donne le code suivant :
>
> requested_attributes = options[:fields].keys.in_groups_of(2)
>
> Avant d'ajouter le "pos", ce tableau me classait mes éléments par ordre
> alphabétique (:address, :email, :firstname, :lastname, :login) , mon but
> est de permettre de choisir l'ordre d'apparition de mes champs en
> fonction de ce "pos".
>
> J'ai tenté avec sort_by sans vraiment de succès, j'imagine que je
> l'emploi assez mal.

Si j'ai bien compris le problème :

ary = options[:fields].sort_by { |_, v| v['pos'] }.map(&:first)
requested_attributes = ary.in_groups_of(2)

devrait obtenir ce que tu veux.

   -- Jean-François.

-- 
http://twitter.com/underflow_

--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse [EMAIL PROTECTED]
-~----------~----~----~----~------~----~------~--~---

Répondre à