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' %>
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)
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
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
Rails a une méthode d'assistance number_to_currency qui pourrait mieux s'adapter à votre cas d'utilisation spécifique.