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.