web-dev-qa-db-fra.com

Rails 3. Comment afficher deux décimales sous forme d'édition?

J'ai ce formulaire d'édition.

Mais quand je stocke quelque chose comme 1.5, je voudrais l'afficher en 1.50.

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

66
leonel

Tu devrais utiliser number_with_precision assistant. Voir doc .

Exemple:

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

En vous formez un assistant:

<%= 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 doc (Dans un contexte de formulaire, je garderais number_with_precision, vous ne voulez pas vous tromper avec les symboles monétaires)


159
apneadiving

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

44
gkuan

Pour cela, j'utilise le formateur number_to_currency . Depuis que 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 fonctionnent pas pour vous. Documentation sur les options disponibles sur api.rubyonrails.org

10
codesponge

Rails a une méthode d'assistance number_to_currency qui pourrait mieux s'adapter à votre cas d'utilisation spécifique.

7
Brian