2012-10-28 34 views
0

如何格式化text_field中的整數,使其始終由6位數組成?如何在Ruby on Rails中將整數顯示爲6位數值?

因此,例如當整數在數據庫中存儲爲1時,在text_field中將會說:000001。用戶還應該能夠編輯這些值,但不能減少或超過數字位數。

我想是這樣的,但它不是爲我工作:

def formatted_number(int) 
    int.to_s.rjust(6, '0') 
end 

感謝您的幫助。

+1

爲什麼這不適合你? –

回答

3

使用字符串格式化:

def formatted_number(int) 
    '%06d' % int 
end 

formatted_number(123) 
#=> "000123" 

對於可讀性的原因,你也可以使用顯式調用Kernel#format

def formatted_number(int) 
    format '%06d', int 
end 

參考the Kernel#format documentation格式字符串的語法。

+0

是不是基本一樣? –

+0

基本上,是的。但是我認爲使用'String#format'(或者如何調用)比使用字符串自己的方式更好。例如,如果你決定支持浮點數值呢? –

+0

行,行。非常感謝! – Tintin81

相關問題