Rails 3. Как отобразить два десятичных знака в форме редактирования?
У меня есть эта форма редактирования.
Но когда я храню что-то вроде 1.5, я хотел бы отобразить его как 1.50.
Как я мог сделать это с помощью помощника формы? <%= f.text_field :cost, :class => 'cost' %>
Ответы
Ответ 1
Вы должны использовать помощник number_with_precision
. См. документ.
Пример:
number_with_precision(1.5, :precision => 2)
=> 1.50
Внутри вас создается хелпер:
<%= f.text_field :cost, :class => 'cost', :value => (number_with_precision(f.object.cost, :precision => 2) || 0) %>
Кстати, если вы действительно хотите отобразить некоторую цену, используйте number_to_currency
, ту же страницу для doc (в контексте формы я бы сохранил number_with_precision
, вы не хотите испортить денежные символы)
Ответ 2
В качестве альтернативы вы можете использовать строку формата "%.2f" % 1.5
. http://ruby-doc.org/docs/ProgrammingRuby/html/ref_m_kernel.html#Kernel.sprintf
Ответ 3
Для этого я использую formater number_to_currency. Поскольку я нахожусь в США, по умолчанию работа для меня прекрасна.
<% price = 45.9999 %>
<price><%= number_to_currency(price)%></price>
=> <price>$45.99</price>
Вы также можете передать опции, если по умолчанию не работают для вас.
Документация по доступным параметрам в api.rubyonrails.org
Ответ 4
Rails имеет number_to_currency вспомогательный метод, который лучше подходит для вашего конкретного варианта использования.