Rails первичный ключ и идентификатор объекта - PullRequest
4 голосов
/ 01 февраля 2010

Я получаю доступ к модели рельсов с типичным первичным ключом id. Однако, когда я получаю к нему доступ в методе, я получаю следующее предупреждение.

Object#id will be deprecated; use Object#object_id

Кажется, это путается между идентификатором объекта и первичным ключом для модели. Есть ли способ убедиться, что это поле id?

Ответы [ 2 ]

5 голосов
/ 01 февраля 2010

Звучит так, будто объект, на котором вы назвали .id, на самом деле не является моделью ActiveRecord. Вы должны видеть только это предупреждение для объектов Ruby, где .id - это устаревшая версия Object#object_id.

.

Однако другой способ доступа к первичному ключу для поля с моделью ActiveRecord - model.attributes['id'], так что вы можете попробовать это.

2 голосов
/ 01 февраля 2010

Как указывает mikej, вы позвонили id на неактивную запись. Для проверки проверьте класс объекта, используя obj.class.

Обратите внимание, однако, что с типом утиной типизации не имеет значения ... если только вы не думаете, что объект отличается от класса :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...