Devise zmiana długości id

staram się zmienić ilość cyfr id user w Devise. jedynym pomysłem, jaki do tej pory mi przychodzi to edycja migracji modelu, tak aby rozpoczynał liczenie np. od 10000.
Ewentualnie rozważam tworzenie kolejnego pola np. user_id, w którym generowałbym randomową, unikalną wartość w przedziale 10000 - 99999 i tą wartość używać jako id oderwane od id bazy danych.

Drugi pomysł jest zły i zrezygnuj z niego.

1 Like

interesują mnie bardziej rozwiązania po stronie kodu aplikacji/niezależne od rodzaju bazy, a więc, pytanie brzmi, lepiej:

class FakeModel
  attr_accessible :name
  start_at = 53121

  def self.find_by_key(key)
    find_by_id(key-start_at))
  end

  def key
    (self.id+start_at)
  end
end

czy:

class MyModel
  before_create do
    self.id = [1000, self.class.maximum(:id)+1].max if self.id.nil?
  end
end

Pierwsze, widzę, że ma sens, nie modyfikuje bazy, tylko model. - całkiem spoko
Drugie jeżeli dobrze rozumiem, tworzy 1000 pustych rekordów?

A gdyby zostawić w spokoju model i bazę, i tylko w routes zaszyć podobne rozwiązanie do pierwszego - w sumie właśnie na tym mi zależy.