Module DataMapper::Model::Relationship
In: lib/dm-core/model/relationship.rb

Methods

belongs_to   extended   has   inherited   n   relationships  

Included Modules

DataMapper::Assertions

Public Class methods

Initializes relationships hash for extended model class.

When model calls has n, has 1 or belongs_to, relationships are stored in that hash: keys are repository names and values are relationship sets.

@api private

Public Instance methods

A shorthand, clear syntax for defining many-to-one resource relationships.

 * belongs_to :user                              # many to one user
 * belongs_to :friend, :model => 'User'          # many to one friend
 * belongs_to :reference, :repository => :pubmed # association for repository other than default

@param name [Symbol]

  the name that the association will be referenced by

@param *args [Model, Hash] model and/or options hash

@option *args :model[Model, String] The name of the class to associate with, if omitted

  then the association name is assumed to match the class name

@option *args :repository[Symbol] name of child model repository

@return [Association::Relationship] The association created

  should not be accessed directly

@api public

A shorthand, clear syntax for defining one-to-one, one-to-many and many-to-many resource relationships.

 * has 1,    :friend                             # one friend
 * has n,    :friends                            # many friends
 * has 1..3, :friends                            # many friends (at least 1, at most 3)
 * has 3,    :friends                            # many friends (exactly 3)
 * has 1,    :friend,  'User'                    # one friend with the class User
 * has 3,    :friends, :through => :friendships  # many friends through the friendships relationship

@param cardinality [Integer, Range, Infinity]

  cardinality that defines the association type and constraints

@param name [Symbol]

  the name that the association will be referenced by

@param *args [Model, Hash] model and/or options hash

@option *args :through[Symbol] A association that this join should go through to form

  a many-to-many association

@option *args :model[Model, String] The name of the class to associate with, if omitted

  then the association name is assumed to match the class name

@option *args :repository[Symbol] name of child model repository

@return [Association::Relationship] the relationship that was

  created to reflect either a one-to-one, one-to-many or many-to-many
  relationship

@raise [ArgumentError] if the cardinality was not understood. Should be a

  Integer, Range or Infinity(n)

@api public

When DataMapper model is inherited, relationships of parent are duplicated and copied to subclass model

@api private

Used to express unlimited cardinality of association, see has

@api public

Returns copy of relationships set in given repository.

@param [Symbol] repository_name

  Name of the repository for which relationships set is returned

@return [RelationshipSet] relationships set for given repository

@api semipublic

[Validate]