Si cela a été répondu avant que je ne puisse pas le trouver.
J'ai ce qui suit: p> et ceci dans le contrôleur: p> = f.collection_select :sex_id, @sexes, :id, :name.capitalize
= f.collection_select :sex_id, @sexes, 'id', 'name'.capitalize
3 Réponses :
La raison pour laquelle votre tentative initiale ne fonctionne pas est que vous essayez de capitaliser un symbole ou une chaîne qui représente le nom de champ et non la variable réelle.
Vous pouvez faire quelque chose comme ça, puis les données seraient Capitalisé avant qu'il soit envoyé à la vue. p> ou p>
J'aurais dû penser à cela ... bien que l'autre solution est beaucoup plus propre. Merci pour votre réponse.
Oui, après avoir vu l'autre réponse, je me suis frappé un peu. Trop facile: p
puis dans la vue: p> collection_select code> appelle une méthode sur chaque objet pour obtenir le texte de la valeur d'option. Vous pouvez ajouter une nouvelle méthode dans le modèle pour obtenir la bonne valeur:
Merci beaucoup, c'est propre et facile.
Le moyen plus simple de le faire dans ROR4 serait d'utiliser le Humaniser la méthode . Donc, votre code de vue ressemblerait à ceci:
= f.collection_select :sex_id, @sexes, :id, :humanize
Le Wisconsinit en moi demande pourquoi vous mélangez deux sexes avec une race. Les données ne sont pas bonnes! ;-)
Ma compagnie est bizarre comme ça, mais c'est cool de travailler dans une industrie où vous pouvez avoir un "sexe animal" dans une base de données et personne ne pense que vous l'avez perdu.