Вы можете установить идентификатор с помощью:
item = Item.new
item.id = i
Вы не можете передать :id => i
в Item.new
, потому что id
является специальным атрибутом и автоматически защищен от массового назначения.
Вы также можете указать MySQL начать отсчет с 1, что автоматически заполнит все пропущенные идентификаторы:
Item.connection.execute("ALTER TABLE items AUTO_INCREMENT = 1")
(На самом деле, документы MySQL говорят, что это сбросит его на MAX(id) + 1
, поэтому в этом случае он не будет использовать 3).