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, вы не хотите испортить денежные символы)


Ответ 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 вспомогательный метод, который лучше подходит для вашего конкретного варианта использования.