Rieles: ¿Asociación de validación después de guardar?

tengo unUser modelo que tiene muchosroles. Roles contiene unuser_id campo, que quierovalidate_presence_of

El problema es: si asigno un rol al usuario al crearlo, la validación fallará porque no se configuró ningún id de usuario. Ahora yohacer Quiero validar que existe un ID_usuario, pero necesito guardar al usuario antes de verificarlo.

El código actualmente se ve así:

@user = User.new(params[:user])
@user.roles << Role.new(:name => 'Peon') unless @user.has_roles?
if @user.save
  # ...

Las únicas maneras en las que puedo pensar en solucionar el problema son desactivar la validación, lo que no quiero hacer, o guardar dos veces en la base de datos, que no es exactamente eficiente.

¿Cuál es la forma estándar para manejar este problema?

Respuestas a la pregunta(4)

Su respuesta a la pregunta