Digamos que você tenha uma mensagem, e essa mensagem possa ter várias fotos e vídeos relacionadas com ela.
Com o model message.rb da forma abaixo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class Message < ActiveRecord::Base # associações belongs_to :user has_many :photos has_many :videos # validações # presença validates_presence_of :title validates_presence_of :content # tamanho máximo validates_length_of :title, :maximum => 255 end |
Se você usar Paperclip para anexar as fotos e vídeos, quando você apagar uma mensagem os arquivos de fotos e vídeos iram continuar a existir no disco rígido.
Para forçar que todas as relações filhas sejam apagadas quando você excluir a mensagem, você deve adicionar :dependent => :destroy na declaração has_many, ficando assim:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | class Message < ActiveRecord::Base # associações belongs_to :user has_many :photos, :dependent => :destroy has_many :videos, :dependent => :destroy # validações # presença validates_presence_of :title validates_presence_of :content # tamanho máximo validates_length_of :title, :maximum => 255 end |
Essa alteração força para que todos os dependentes sejam excluídos.
Se você gostou desse texto e acha que ajudou você, me recomende:
.
