class Mongoid::Relations::Cascading::Restrict

Attributes

document[RW]
metadata[RW]
relation[RW]

Public Class Methods

new(document, metadata) click to toggle source

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/restrict.rb, line 19
def initialize(document, metadata)
  @document, @metadata = document, metadata
  @relation = document.send(metadata.name)
end

Public Instance Methods

cascade() click to toggle source

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 delete.

strategy.cascade
# File lib/mongoid/relations/cascading/restrict.rb, line 30
def cascade
  unless relation.blank?
    raise Errors::DeleteRestriction.new(document, metadata.name)
  end
end