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?