leading zeros in rails
It'd be better to store it as an integer and just display it as you described on runtime. Every language has its own way to pad zeros - for Ruby you can use String#rjust. This method pads a string (right-justified) so that it becomes a given length, using a given padding character.
str.rjust(integer, padstr=' ') → new_str
If
integer
is greater than the length ofstr
, returns a newString
of lengthinteger
withstr
right justified and padded withpadstr
; otherwise, returnsstr
.
some_int = 5
some_int.to_s.rjust(2, '0') # => '05'
some_int.to_s.rjust(5, '0') # => '00005'
another_int = 150
another_int.to_s.rjust(2, '0') # => '150'
another_int.to_s.rjust(3, '0') # => '150'
another_int.to_s.rjust(5, '0') # => '00150'
You can transform the integer into a string of that kind with:
result_string = '%02i' % your_integer
This is independent from how it gets saved in the db.
- RDoc Documentation
- Explanation & Examples
This is also quite handy:
"%.2d" % integer
The resultant string will be of 2 characters and if the number is of less than 2 characters, then 0s will be present in the string