72 votes

Rails 3. Comment afficher deux décimales dans un formulaire d'édition ?

J'ai ce formulaire d'édition.

Mais lorsque je stocke quelque chose comme 1,5, je voudrais l'afficher comme 1,50.

Comment pourrais-je faire cela avec l'aide au formulaire ? <%= f.text_field :cost, :class => 'cost' %>

169voto

apneadiving Points 64660

Vous devez utiliser number_with_precision aide. Voir le document .

Exemple :

number_with_precision(1.5, :precision => 2)
=> 1.50 

A l'intérieur de vous formez l'aide :

<%= f.text_field :cost, :class => 'cost', :value => (number_with_precision(f.object.cost, :precision => 2) || 0) %>

BTW, si vous voulez vraiment afficher un prix, utilisez number_to_currency même page pour le doc (dans un contexte de formulaire, je garderais number_with_precision vous ne voulez pas vous embrouiller avec des symboles d'argent).


47voto

gkuan Points 596

Vous pouvez également utiliser la chaîne de format "%.2f" % 1.5 . http://ruby-doc.org/docs/ProgrammingRuby/html/ref_m_kernel.html#Kernel.sprintf

11voto

codesponge Points 69

Pour cela, j'utilise le nombre_en_devise formateur. Comme je suis aux États-Unis, les valeurs par défaut fonctionnent bien pour moi.

<% price = 45.9999 %>
<price><%= number_to_currency(price)%></price>
=> <price>$45.99</price>

Vous pouvez également passer des options si les valeurs par défaut ne vous conviennent pas. La documentation sur les options disponibles à api.rubyonrails.org

7voto

Brian Points 4711

Rails dispose d'un nombre_en_devise qui pourrait mieux convenir à votre cas d'utilisation spécifique.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X