Я обновил приложение Rails с Rails 3.2 до Rails 5.2, и все вроде бы хорошо, за исключением того, что числа с десятичными разрядами не сохраняются должным образом.
Мы используем запятые вместо точек надесятичные разряды, и мы ранее использовали гем delocalize, но, похоже, он не работает должным образом, и мы создали новые приложения на Rails 5.2 с нуля, и они им не нужны, поэтому я предполагаю, что что-то не так.
Ранее, используя гем delocalize, все params
отображались бы как String
, даже если они на самом деле bigDecimal
;Затем Rails будет анализировать его в формате, используемом в БД, и сохранять его таким образом, а затем делать обратный процесс при загрузке их обратно.Однако теперь числа неправильно форматируются, как показано ниже:
Processing by Admin::AccompanimentsController#update as HTML
Parameters: {
"utf8"=>"✓", "authenticity_token"=>"...",
"admin_accompaniment"=>{
"date"=>"08/10/2018 17:44", "syrup"=>"1.200,12",
"observation"=>""
}, "commit"=>"Atualizar Acompanhamento", "id"=>"1047"}
В результате ...
Admin::Accompaniment Update (0.3ms) UPDATE `accompaniments` SET
`syrup` = 12.00, `updated_at` = '2018-10-09 18:06:49' WHERE
`accompaniments`.`id` = 1047
I18n.locale
говорит, что он правильно использует pt-BR
, но это не такКажется, что он работает.
Если я использую гем delocalize
и определю типы для него параметров, он будет затем правильно анализироваться, но когда данные загружаются из БД, они загружаютсяс точками вместо запятых снова.
В других приложениях Rails 5.2 обновление просто правильно анализирует число, но, похоже, это не так.Есть идеи?