我想知道如何让json中的rails渲染一个bigdecimal作为一个没有尾随零的数字。
目前在我的应用中,使用as_json
Rails将活动记录实体的bigdecimal值渲染为带小数的数字,例如: bigdecimal 2.0呈现2.0(不是字符串)。我希望它呈现为2(不是字符串,没有尾随零)。
为了尝试这个,我使用了jbuilder并使用了rails helper方法number_with_precision
和选项strip_insignificant_zeros: true
;但是,这会将值转换为字符串。将to_f
加到最后会使'' 2' 2.0。
有没有办法在json中渲染一个bigdecimal作为一个没有尾随零的数字?
谢谢
答案 0 :(得分:0)
尝试使用to_i
方法将小数转换为整数
答案 1 :(得分:0)
如果数字的小数部分为0 - 只需转换为Integer,否则转换为Float。
(x.frac.zero? ? x.to_i : x.to_f)