Увеличьте диапазон идентификаторов ActiveModel до 8 байт

Я копался, чтобы увидеть, как я могу получить все свои новые и последующие идентификаторы модели должны иметь ограничение в 8 байт. Ответы показывают, как это сделать при добавлении нового столбца таблицы; Я хочу, чтобы всякий раз, когда я создавал новый Model, он автоматически имел бы limit из 8 байтов. Возможный?

При создании новой модели я получаю:

ActiveModel :: RangeError: 36565651767 вне допустимого диапазона для ActiveModel :: Type :: Integer с ограничением 4

Где поменять этот лимит с 4 на 8?


person Sylar    schedule 02.09.2016    source источник


Ответы (1)


возможный дубликат, но поскольку будут ошибки:

вы не можете переопределить столбец первичного ключа 'id'. Чтобы определить собственный первичный ключ, передайте {id: false} в create_table.

Это означает, что ваша таблица должна выглядеть так:

class MyModels < ActiveRecord::Migration[5.0]
  def change
    create_table :my_models, {id: false } do |t|
      t.column   :id, limit: 8
      ...
     end
  end
end
person Sylar    schedule 02.09.2016