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?