Я хочу хранить валюты в своих базах данных (sqlite и mysql). Я пытаюсь использовать тип столбца decimal
с :scale => 2
.
Это ведет себя не так, как ожидалось. Если я сохраню запись с :rate => 10.50
, она сохранится в моей базе данных sqlite как 10.5
. Кроме того, когда я вывожу значение в поле формы, оно отображается как 10.5
.
Я не хочу делать хакерское форматирование строк каждый раз, когда я хочу красиво отображать значения в формах Rails.
Есть ли способ обойти это? Это что-то из sqlite? Я просто неправильно понимаю тип столбца decimal
?
Изменить:
Чтобы уточнить, я хочу иметь возможность использовать обычные методы генерации формы:
- form_for @project do |f|
= f.text_field :rate
Если мне нужно явно отформатировать вывод, мне придется создать дополнительные методы для каждого десятичного атрибута:
def formatted_rate
"%.2f" % rate
end
= f.text_field :formatted_rate
Существуют ли какие-либо другие распространенные приемы для принудительного форматирования вывода и использования стандартного конструктора форм Rails?
<%= f.text_field :rate, :value => number_with_precision(f.object.rate) %>
19.10.2010