我已将Rails应用程序从Rails 3.2更新到Rails 5.2,一切似乎都很好,除了带小数位的数字未正确保存之外。
我们使用逗号而不是小数点前的句点,并且以前使用过delocalize gem,但它似乎无法正常工作,我们从头开始制作了新的Rails 5.2应用程序,他们不需要它,所以我假设这里有问题。
以前,使用delocalize gem,所有params
都将呈现为String
,即使它们实际上是bigDecimal
;然后,Rails会将其解析为db上使用的格式,并像这样保存它,并在将它们装回时进行相反的处理。但是,现在数字的格式不正确,如下所示:
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
gem并为其定义参数类型,则它将正确解析,但是当从db加载数据时,它将再次加载句点而不是逗号。
在其他Rails 5.2应用程序上,该更新只是正确地解析了该数字,但事实并非如此。有什么想法吗?