Возможен ли пользовательский столбец «id» без автоматического увеличения ActiveRecord? - PullRequest
5 голосов
/ 20 ноября 2010

Я хотел бы иметь возможность использовать пользовательский идентификатор (вместо автоматически увеличивающихся по умолчанию) для модели Rails. По сути, все идентификаторы будут идентификаторами магазина iTunes, которые являются просто длинными целыми числами. Можно ли отключить идентификаторы автоинкрементного по умолчанию и требовать, чтобы они были установлены? Эти идентификаторы также будут использоваться в качестве внешних ключей в других моделях.

Ответы [ 2 ]

6 голосов
/ 20 ноября 2010

Примерно так:

create_table :blah, {:id => false} do |t|
  t.int :my_custom_int_id
end
execute "ALTER TABLE blah ADD PRIMARY KEY (my_custom_int_id);"
2 голосов
/ 20 ноября 2010

Вы можете вручную установить идентификатор перед сохранением модели.

a = Model.new
a.id = 8888 #from itunes
a.save

Однако вместо этого подхода следует рассмотреть отдельное поле с именем itunes_id.

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