8
votes

Utiliser capitaliser sur une collection_select

Si cela a été répondu avant que je ne puisse pas le trouver.

J'ai ce qui suit: p> xxx pré>

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


2 commentaires

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.


3 Réponses :


0
votes

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. xxx

ou xxx


2 commentaires

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



8
votes

collection_select 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: xxx

puis dans la vue: xxx


1 commentaires

Merci beaucoup, c'est propre et facile.



0
votes

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


0 commentaires