Глядя на SO, я вижу, что предпочтительным способом валюты с использованием RoR является использование десятичного числа (8,2) и для вывода их с помощью number_to_currency ();
Я могу получить свои числа из БД,но у меня возникают проблемы при их получении.
Внутри моего действия по обновлению у меня есть следующая строка:
if @non_labor_expense.update_attributes(params[:non_labor_expense])
puts YAML::dump(params)
Дамп параметров показывает правильное значение.xx, yyy.zz, но то, что хранится в БД, это только xx.00
Что мне нужно сделать, чтобы учесть, что могут быть запятые, а пользователь не может вводить .zz (центы).Некоторое регулярное выражение и для запятой?как бы вы справились с десятичной дробью, если бы она была .2 против .20.
Должен быть встроенный или, по крайней мере, лучший способ.
Моя миграция (не знаю, поможет ли это):
class ChangeExpenseToDec < ActiveRecord::Migration
def self.up
change_column :non_labor_expenses, :amount, :decimal, :precision => 8, :scale => 2
end
def self.down
change_column :non_labor_expenses, :amount, :integer
end
end