Глядя на 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