Я бы рекомендовал вместо этого построить серийную модель в модели. Это даст вам больше гибкости для настройки формата серийного номера позже, и вместо этого сохранит уникальное автоинкремент в базе данных. Используйте обычный первичный ключ с автоматическим приращением, а затем создайте серийный номер следующим образом:
class Product
def serial_number
"PLN-%.6d" % id
end
end
Так, например, если у вас есть продукт с id = 567, у вас будет такой серийный номер:
Product.find(567).serial_number
=> PLN-000567