Это хорошая практика, чтобы установить пользовательское значение идентификатора для объекта ActiveRecord - PullRequest
2 голосов
/ 04 февраля 2010

Я пишу простое приложение rails, которое кэширует значения из веб-службы. Веб-сервис возвращает список объектов, которые выглядят так:

<objects>
    <object>
        <id>12345</id>
        <name>obj name</name>
    </object>
    ....
</objects>

Можно ли использовать идентификатор, поступающий в качестве идентификатора для моего объекта ActiveRecord, если я гарантирую, что он уникален ... или лучше установить его в качестве другого атрибута и позволить ActiveRecord обрабатывать идентификатор? Я прочитал код, и похоже, что метод create в ActiveRecord не генерирует новый идентификатор, если он уже установлен. Я правильно понимаю?

Спасибо

Ответы [ 2 ]

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

Если в вашем поле id установлено автоинкремент, вы не сможете его указать, по крайней мере, не так просто. Однако это зависит от вашей базы данных.

Я предлагаю хранить внешние идентификаторы независимо от ваших собственных идентификаторов. В долгосрочной перспективе это даст вам большую гибкость и изоляцию от изменения схемы идентификатора третьей стороны.

0 голосов
/ 04 февраля 2010

Я бы определенно использовал свой собственный идентификатор, просто потому что при разрешении внешнего доступа нет никаких гарантий.

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