Rails: Validando associação após salvar?

eu tenho umUser modelo que tem muitosroles. Funções contém umuser_id campo, que eu querovalidate_presence_of

O problema é: se eu atribuir uma função ao usuário após a criação, a validação falhará porque nenhum user_id está configurado. Agora euFaz quero validar que um user_id existe, mas preciso salvar o usuário antes de verificar isso.

O código atualmente é assim:

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

As únicas maneiras de pensar em contornar o problema envolvem desativar a validação, o que não quero fazer, ou salvar duas vezes no banco de dados, o que não é exatamente eficiente.

Qual é a maneira padrão de lidar com esse problema?

questionAnswers(4)

yourAnswerToTheQuestion