В прошлом я справлялся с этим, используя вспомогательный метод Rails number_to_currency .
number_to_currency(1234567890.50) # => $1,234,567,890.50
number_to_currency(1234567890.506) # => $1,234,567,890.51
number_to_currency(1234567890.506, :precision => 3) # => $1,234,567,890.506
Вы можете сохранить поле как обычное число, и Rails отформатирует его в $.