Desejo criar um ID exclusivo para meu modelo de usuário (chamado account_id) que não está associado à chave primária. Este ID será fornecido ao usuário como outra medida de segurança para o usuário identificar sua conta.
Aqui estão alguns métodos no modelo de usuário que foram úteis para fazer isso.
Use isso com um retorno de chamada ActiveRecord (após inicializar ou antes de criar) dependendo de sua necessidade.
after_initialize :assign_account_id
def assign_account_id
possible_id = nil
while possible_id.nil? || User.where(:account_id => possible_id).first
possible_id = generate_id
end
self.account_id = possible_id
end
def generate_id
id = ["A"]
5.times{id<<SecureRandom.random_number(9)}
id = id.join
end