2013-05-14 1 views
0

Я пытаюсь использовать следующий внутри моей модели:Автоматическая генерация ID с созданием! блок в модели

create!(
    :title   => entry.title, 
    :link   => entry.url, 
    :published_date => entry.published, 
    :entry_id   => entry.id, 
    :category => thing, 
    :author => entry.author, 
    :user_id => user.id 
) 

Это терпит неудачу с Mysql2::Error: Duplicate entry '0' for key 'PRIMARY' при добавлении ничего мимо первой записи, так как столбец идентификатора задаются как 0. Есть ли способ auto-increment id с использованием вышеуказанного кода?

Благодаря

+0

Почему вы устанавливаете столбец id равным 0? Идентификаторы должны быть автоматически увеличивающимися столбцами и полностью обрабатываться вашей базой данных. – sevenseacat

+0

@sevenseacat Когда я ничего не делаю, идентификатор автоматически устанавливается на 0. – aperture

+0

и почему? Что вы сделали с вашей схемой? – sevenseacat

ответ

0

Вы никогда не должны вручную указать идентификатор при создании новых экземпляров; Rails автоматически создаст стол для автоматического увеличения, чтобы обрабатывать уникальные идентификаторы для вас.

В этом случае, если вы подделали столбец идентификатора и изменили его тип, самым простым способом его сброса является просто воссоздание таблицы.

Смежные вопросы