Ruby on rails 数字的Rails列类型

Ruby on rails 数字的Rails列类型,ruby-on-rails,Ruby On Rails,我正在存储数字,例如 2,000 5,000 10,000 在具有“整型列”的数据库中。当我在应用程序上显示它们时,它们显示为 2.0 5.0 是否有一种列类型可以让它们显示为“原样”。我以前尝试过字符串,但字符串排序不好 为了解决这个问题,我在数据库中输入了不带逗号的数字。然后数字出现在应用程序上,比如10000.0,我使用数字到货币来更改数字,使其看起来像一个美元值在Ruby中,您也可以输入这样的整数 10_000 5_000 2_000 整数应该和整数一样。如果您尝试在内部插入

我正在存储数字,例如

2,000

5,000

10,000 
在具有“整型列”的数据库中。当我在应用程序上显示它们时,它们显示为

2.0
5.0

是否有一种列类型可以让它们显示为“原样”。我以前尝试过字符串,但字符串排序不好

为了解决这个问题,我在数据库中输入了不带逗号的数字。然后数字出现在应用程序上,比如10000.0,我使用
数字到货币
来更改数字,使其看起来像一个美元值

在Ruby中,您也可以输入这样的整数

10_000
5_000
2_000

整数应该和整数一样。如果您尝试在内部插入“2000”,rails实际上是在它上面做一个to_i,它将是2。(在irb“2000”、to_i和“2_000”上试试这个。to_i看看ruby如何处理整数转换)

现在,如果插入2000,得到的是2000.0,这不是整数列的自然值或预期值。我怀疑属性上正在进行一些后期处理,或者您的数据库是十进制/浮点列

Rails控制台=>

"2,000".to_i => 2
"2_000".to_i => 2000
helper.number_to_currency(2000) => "$2,000.00" 

您是否将它们编码为外语?我唯一能想到的是,一些欧洲语言使用逗号,就像美国人使用小数一样。我不知道。我在北美,所有的设置都应该是英语。这是正确的方法。您不应该处理数据库中的显示逻辑。以最基本的形式表示它,然后使用模板逻辑来处理表示。