Le 20 novembre 2008 11:41, Big Choco a écrit :

> J'ai par exemple dans mon modèle
>
> class MyModel < ActiveRecord::Base
>
>  COLORS = {:a => "Rouge", :b => "Vert", :c => "Jaune" }
>
> end
>
>
> Dans ma vue j'aimerais bien faire un truc du genre
>
> <%= f.select :color, MyModel::COLORS.each_pair { |k, v| [v, k] } %>
>
> Bon, étant newbie, tout ce dont je me rends compte c'est que
> ça ne marche pas comme voulu,

Je te conseille de tâtonner en utilisant irb, ou script/console
pour être dans l'environnement Rails.

> moi je voudrais dans ma liste
> 'Rouge, Vert, Jaune', et non 'a, b, c', avec un tableau et
> Array#collect, ça fonctionne mais je n'y arrive pas avec un
> Hash et il me semble que
> Hash#collect n'existe pas (à moins que je sois dans le gaz)

Pour le vérifier, irb ou script/console.

Tu peux regarder du côté de Hash#to_a et éventuellement,
Hash#invert peut te servir.

Dernier point, si ton tableau COLORS est constant durant
la vie de ton application, ça veut dire que les valeurs pour
ta liste déroulante le sont aussi, tu peux donc faire en
sorte de ne calculer ce tableau qu'une seule fois, sans avoir
à le recréer à chaque appel de ta vue.

La prochaine fois, ouvre un nouveau fil de discussion (thread)
quand tu as une nouvelle question.

    -- Jean-François.

-- 
Rails Party à Paris dimanche 30 novembre !

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 à