Rails 3. Как отобразить два десятичных знака в форме редактирования? - PullRequest
66 голосов
/ 14 октября 2011

У меня есть эта форма редактирования.

Но когда я сохраняю что-то вроде 1.5, я бы хотел отобразить его как 1.50.

Как я могу сделать это с помощью помощника по форме?<%= f.text_field :cost, :class => 'cost' %>

Ответы [ 4 ]

157 голосов
/ 14 октября 2011

Вы должны использовать 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, ту же страницу для документа (В контексте формы я бы оставил number_with_precision, вы не хотите портить денежные знаки)


44 голосов
/ 15 октября 2011

В качестве альтернативы вы можете использовать строку формата "%.2f" % 1.5. http://ruby -doc.org / документы / ProgrammingRuby / html / ref_m_kernel.html # Kernel.sprintf

10 голосов
/ 15 октября 2011

Для этого я использую форматер number_to_currency . Так как я нахожусь в США, настройки по умолчанию работают хорошо для меня.

<% price = 45.9999 %>
<price><%= number_to_currency(price)%></price>
=> <price>$45.99</price>

Вы также можете передать опции, если настройки по умолчанию у вас не работают. Документация по доступным опциям на api.rubyonrails.org

7 голосов
/ 15 октября 2011

Rails имеет вспомогательный метод number_to_currency , который может лучше соответствовать вашему конкретному случаю использования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...