Confused Rails 3 новичка. Моя модель имеет атрибут purchase_price, определенный следующим образом:
t.decimal :purchase_price, :precision => 12, :scale => 2, :default => 0.00
Моя цель - создать простое приложение на Rails 3, где я могу просматривать и редактировать это значение. В моей модели я определил собственный метод получения, чтобы всегда существовали 2 десятичных знака.
def purchase_price
sprintf( "%.2f",attributes['purchase_price'])
end
Это работает правильно с консоли и при отображении страницы показа. На странице редактирования у меня есть текстовое поле для редактирования этого значения. Моя проблема заключается в том, что если это значение сохраняется как «123,00», значение отображается как «123,0».
Вопросы:
- Почему мой пользовательский получатель не вызывается?
- Почему это отображается с 1 десятичным знаком, а не с 2 десятичными?
Обновление
- Десятичное значение, хранящееся в MySQL: 100,20
- Значение, возвращаемое из консоли: 100,20
- Значение, отображаемое в текстовом поле: 100,2
- Значение, возвращаемое через Firebug: "100,2"
- Длина текстового поля не имеет значения.
- Если значение в БД равно 100,21, оно отображается правильно как 100,21