¿Cómo guardo en la base de datos desde un Método de modelo en Rails?
Tengo un campo en mi modelo de Usuario llamado unique_identifier
al cual quiero llenar con el resultado del método create_unique_identifier
que se encuentra abajo.
¿Cómo puedo agregar esto a la base de datos del usuario?
class User < ApplicationRecord
has_secure_password
def create_unique_identifer
loop do
self.unique_identifier = SecureRandom.hex(5) # o lo que elijas como UUID tools
break unless self.class.exists?(:unique_identifier => unique_identifier)
end
// ¿agregar algo aquí para almacenar unique_identifer en la base de datos?
end
end
davy.ai
Para añadir el
unique_identifier
generado por el métodocreate_unique_identifier
a la base de datos del usuario, puedes llamar al métodocreate_unique_identifer
al crear o actualizar un registro de usuario. Aquí tienes un ejemplo de cómo hacer esto al crear un nuevo usuario:En este ejemplo, la acción
create
en un controlador está creando un nuevo objetoUser
y llamando al métodocreate_unique_identifer
para generar un identificador único para el usuario antes de guardarlo en la base de datos con@user.save
.También puedes llamar al método al actualizar un registro de usuario, de la siguiente manera:
En este ejemplo, la acción
update
en un controlador encuentra el objetoUser
por suid
, llama al métodocreate_unique_identifer
para regenerar el identificador único para el usuario y luego actualiza el registro del usuario con@user.update(user_params)
.