Rails 5.2应用程序无法正确格式化数字?

时间:2018-10-09 20:10:39

标签: ruby-on-rails ruby internationalization

我已将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应用程序上,该更新只是正确地解析了该数字,但事实并非如此。有什么想法吗?

0 个答案:

没有答案