У тебя поле типа integer, а заносишь
строковое значение?!
Фреймворк выполняет конверсию самостоятельно наподобие такого:
code = '0000000001' # строка с числовым значением
puts Integer(code).inspect
Для числовых значений ведущие нули не имеют значения, а потому их нет смысла отображать.
0001, 01, 00000000001, 1 - это одно и то же число.
Допустим, если нужно хранить штрих-код продукта, то нужно выставить
строковый тип полю code.
Тогда в БД сохранится именно строка, а не сконвертированное в целое число значение.
Для работы же с битовыми значениями в целых числах используют нотацию
code = 0b0000000011 # (число 3, включены 0-й и 1-й биты)
puts code.inspect