Crear un registro en otra tabla con before_create

Buenas. Tengo una tabla clientes y otra usuarios.

Cada vez que guardo un cliente, me gustaría poder crear un usuario
asociado
a este clietne.

Tengo esto:

before_create :crear_usuario_cliente

def crear_usuario_cliente
pass = ApplicationController.cadena_aleatoria
aux_usu = Usuario.create({:email => self.email, :rol_id => 4,
:nombre =>
self.nombre, :login => self.login, :password => pass,
:password_confirmation
=> pass })
if aux_usu.errors.size >0
for e in aux_usu.errors
self.errors.add e
end
end
end

El caso es que no sé como decirle que cancele la transacción en caso de
que
el usuario tenga problemas de validación

Alguna ayuda?

On 10/16/07, Luis V. [email protected] wrote:

pass = ApplicationController.cadena_aleatoria

El caso es que no sé como decirle que cancele la transacción en caso de que
el usuario tenga problemas de validación

def crear_usuario_cliente
# Mmm… llamada desde el modelo al controlador?
# Quizás mejor una clase en /lib
pass = ApplicationController.cadena_aleatoria

aux_usu = Usuario.create({:email => self.email, :rol_id => 4,

:nombre => self.nombre, :login => self.login, :password => pass,
:password_confirmation => pass })

if !aux_usu
  self.errors += aux_usu.errors
  false
end

end

oki, gracias por los consejos.

Más o menos pillo la idea

On 10/16/07, Luis V. [email protected] wrote:

oki, gracias por los consejos.

Más o menos pillo la idea

De todas maneras, la respuesta a tu pregunta es: si el callback
devuelve false, se corta la
ejecución.