Rails3 ActiveRecord: nil id в поле auto_increment после создания / сохранения - PullRequest
0 голосов
/ 23 августа 2011

Rails 3.0.9 Ruby 1.9.2p180 mysql 5.5

Я создаю записи в таблице mysql, где первичный ключ = id с auto_increment.Создание записи выполняется с помощью вызовов

mc_object = ModelClass.create (... список колясок excl id)

Возвращенный mc_object содержит id = nil, а запись в БД содержит правильно назначенныйзначение идентификатораИспользование ModelClass.new (...), за которым следует ModelClass.save (или даже сохранение!), Дает тот же результат.

Я не верю, что это правильное поведение.

Если я-просить запись из БД, я вижу правильный идентификатор в возвращаемом объекте.

Это ошибка в ActiveRecord ??

1 Ответ

0 голосов
/ 23 августа 2011

Идентификатор создается при сохранении объекта в БД.Если вы используете ModelClass.new (...), вы всегда получите id = nil, но если вы используете ModelClass.create (...), вы должны получить значение id.В следующем примере есть объект карты, чье поле card_id имеет значение auto inc.

irb(main):020:0> c = Card.create(:name =>"Sample Card")
=> #<Card  name: "Sample Card", card_id: 65 >

irb(main):021:0> c = Card.new(:name =>"Sample Card")
=> #<Card  name: "Sample Card", card_id: nil >
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...