(22-01-2013, 05:00 PM)Sephi-Chan a écrit : Tu pourrais remplacer le :
= h.input :race, :collection => @race.map { |name| [ t(name, scope: 'races'), name ] }
par quelque chose commme (à la louche) :
= h.input :race, :collection => Race::NAMES[h.object.nation] }
Comme j'étais pas trop sûr de ce que tu voulais dire dans ta réponse (y a un "}" qui traîne), j'ai essayé deux solutions :
= h.input :race, :collection => Race::NAMES[h.object.nation].map { |name| [ t(name, scope: 'races'), name ] }
# => undefined method `map' for nil:NilClass
= h.input :race, :collection => Race::NAMES[h.object.nation]
# => Retourne un champ texte classique et non un select
L'erreur renvoyée par la première ligne me semble logique dans la mesure où h.object.nation ne renvoie rien (j'ai indiqué nulle part de valeur par défaut, ni dans ma base de données, ni dans mon modèle).