Initialize the new cascade strategy, which will set up the relation and the metadata.
@example Instantiate the strategy
Strategy.new(document, metadata)
@param [ Document ] document The document to cascade from. @param [ Metadata ] metadata The relation's metadata.
@return [ Strategy ] The new strategy.
# File lib/mongoid/relations/cascading/destroy.rb, line 18 def initialize(document, metadata) @document, @metadata = document, metadata @relation = document.send(metadata.name) end
Execute the cascading deletion for the relation if it already exists. This should be optimized in the future potentially not to load all objects from the db.
@example Perform the cascading destroy.
strategy.cascade
# File lib/mongoid/relations/cascading/destroy.rb, line 29 def cascade if relation if relation.is_a?(Enumerable) relation.entries relation.each { |doc| doc.destroy } else relation.destroy end end end