Isso eu já tinha aprendido, mas como tive que fazer agora, vale escrever:
Se eu tenho um objeto que depende de outro para existir, sempre que eu apagar o "pai' eu tenho que lembrar de verificar se ele tem "filhos" e apagar tbm.
Por exemplo: se eu tenho uma classe carro, e se os carros só podem existir se houver um cliente associado a ele, sempre que eu for apagar um cliente eu tenho que verificar se ele tem algum carro e apagar o carro..
Exemplo:
def destroy
@cliente = Cliente.find(params[:id])
unless (@cliente.carro.nil?)
@cliente.carro.destroy
end
@cliente.destroy
end
Se o cliente "tiver" mais coisas, eu tenho que verificar todas e apagar todas. =]
ps: no lugar de cliente eu tenho objeto. sempre que eu for apagar um objeto eu tenho que verificar se ele tem alguma coisa, tipo ciclo de vida, etc.