Rails - десятичное обновление модели - отображает округленное значение из базы данных - PullRequest
1 голос
/ 13 марта 2011

В моей модели Offer есть десятичное поле с именем label_length с одним десятичным знаком.Значение округляется при сохранении в базе данных.

Запись уже сохранена в базе данных.Я в форме редактирования для моей модели предложения.Теперь я положил 123,45 в текстовое поле и нажал кнопку.После сохранения я рендеринг действия редактирования снова с текстовым полем.В текстовом поле для label_length я снова нахожу значение 123,45, хотя 123,5 хранится в базе данных.

Кажется, что @offer в контроллере не обновляется после вызова offer.update_attributes (params [: offer])

Есть ли способ отобразить текущее значение базы данных?

Спасибо, Марк

1 Ответ

1 голос
/ 13 марта 2011

Как выглядит ваша миграция? Вы можете предложить Rails создать десятичное поле с заданным масштабом и точностью в вашей миграции, чтобы у вас не было неожиданно округленных значений:

t.decimal :amount,  :precision => 6, :scale => 2

Что касается получения Rails возможности использовать данные из базы данных после сохранения, вы можете просто добавить вызов reload, например, так:

if @offer.save
  @offer.reload
  ...
else
  ...
end
...