2012-07-27 65 views
0

我存储号码如的Rails列类型号码

2,000 

5,000 

10,000 
在数据库

。当我在应用中展示他们,他们正在展示像

2.0 
5.0 

起来有没有我可以使用,使他们展示了一列式“原样”。我之前尝试过字符串,但字符串排序不好。

+1

你编码它们作为一门外语?我能想到的唯一的事情是一些欧洲语言使用逗号,比如美国人使用小数。 – Chris 2012-07-27 02:29:35

+0

不是我所知道的。我在北美,设置应该都是英语。 – Leahcim 2012-07-27 02:32:15

回答

0

整数输入应该像整数一样出来。如果你试图在内部插入“2000”,那么rails会有效地做一个to_i,它将是2.(在irb“2,000”.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" 
0

要解决这个问题,我在数据库中输入了没有逗号的数字。然后,这些数字表明了对应用程式,例如10000.0我以前number_to_currency更改号码,使它看起来像一个美元的价值

+0

这是正确的方法。您不应该处理数据库中的显示逻辑。用最基本的形式表示它,然后使用模板逻辑来处理表示。 – 2012-07-27 07:07:00

0

在Ruby中,你也可以在整数这样

10_000 
5_000 
2_000