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