Módulo: Mongoid::Association::macros::ClassMethods

Definido em:
lib/mongoid/association/macros.rb

Visão geral

Métodos de classe para associações.

Recolhimento do Resumo do método de instância

Detalhes do método de instância

#pertence_to(name, options = {}, &block) ➤ Object

Adiciona uma associação referenciada do Documento filho para um Documento em outro banco de dados ou coleção.

Exemplos:

Defina a associação.


class Game
  include Mongoid::Document
  belongs_to :person
end

class Person
  include Mongoid::Document
  has_one :game
end

Parâmetros:

  • name (Símbolo)

    O nome da associação.

  • opções (Hash) (padrão para: {})

    As opções de associação.

  • &block

    Bloco opcional para definir extensões.



148
149
150
# Arquivo 'lib/mongoid/association/macros.rb', linha 148

def pertence_a(name, opções = {}, &noum: bloco ; verb: bloquear)
  define_association!(__method__, name, opções, &noum: bloco ; verb: bloquear)
end

#embedded_in(name, options = {}, &block) ➤ Object

Adiciona a associação de volta ao documento pai . Essa macro é necessária para definir as referências do filho de volta para o documento pai. Se um filho não definir essa associação, chamar métodos de persistência no objeto filho fará com que ao salvar falhe.

Exemplos:

Defina a associação.


class Person
  include Mongoid::Document
  embeds_many :addresses
end

class Address
  include Mongoid::Document
  embedded_in :person
end

Parâmetros:

  • name (Símbolo)

    O nome da associação.

  • opções (Hash) (padrão para: {})

    As opções de associação.

  • &block

    Bloco opcional para definir extensões.



80
81
82
# Arquivo 'lib/mongoid/association/macros.rb', linha 80

def embedded_in(name, opções = {}, &noum: bloco ; verb: bloquear)
  define_association!(__method__, name, opções, &noum: bloco ; verb: bloquear)
end

#embeds_many(name, options = {}, &block) ➤ Object

Adiciona a associação de um documento pai a seus filhos. O nome da associação precisa ser uma forma pluralizada do nome da classe filha.

Exemplos:

Defina a associação.


class Person
  include Mongoid::Document
  embeds_many :addresses
end

class Address
  include Mongoid::Document
  embedded_in :person
end

Parâmetros:

  • name (Símbolo)

    O nome da associação.

  • opções (Hash) (padrão para: {})

    As opções de associação.

  • &block

    Bloco opcional para definir extensões.



103
104
105
# Arquivo 'lib/mongoid/association/macros.rb', linha 103

def incorpora_many(name, opções = {}, &noum: bloco ; verb: bloquear)
  define_association!(__method__, name, opções, &noum: bloco ; verb: bloquear)
end

#embeds_one(name, options = {}, &block) ➤ Object

Adiciona a associação de um documento pai a seu filho. O nome da associação precisa ser uma forma singular do nome da classe filho.

Exemplos:

Defina a associação.


class Person
  include Mongoid::Document
  embeds_one :name
end

class Name
  include Mongoid::Document
  embedded_in :person
end

Parâmetros:

  • name (Símbolo)

    O nome da associação.

  • opções (Hash) (padrão para: {})

    As opções de associação.

  • &block

    Bloco opcional para definir extensões.



126
127
128
# Arquivo 'lib/mongoid/association/macros.rb', linha 126

def incorpora_one(name, opções = {}, &noum: bloco ; verb: bloquear)
  define_association!(__method__, name, opções, &noum: bloco ; verb: bloquear)
end

#has_and_belongs_to_many(name, options = {}, &block) ➤ Object

Adiciona uma associação referenciada de muitos para muitos entre muitos deste Documento e muitos de outro Documento.

Exemplos:

Defina a associação.


class Person
  include Mongoid::Document
  has_and_belongs_to_many :preferences
end

class Preference
  include Mongoid::Document
  has_and_belongs_to_many :people
end

Parâmetros:

  • name (Símbolo)

    O nome da associação.

  • opções (Hash) (padrão para: {})

    As opções de associação.

  • &block

    Bloco opcional para definir extensões.



194
195
196
# Arquivo 'lib/mongoid/association/macros.rb', linha 194

def has_and_belongs_to_many(name, opções = {}, &noum: bloco ; verb: bloquear)
  define_association!(__method__, name, opções, &noum: bloco ; verb: bloquear)
end

#has_many(name, options = {}, &block) ➤ Object

Adiciona uma associação referenciada de um documento pai a muitos documentos em outro banco de dados ou collection.

Exemplos:

Defina a associação.


class Person
  include Mongoid::Document
  has_many :posts
end

class Game
  include Mongoid::Document
  belongs_to :person
end

Parâmetros:

  • name (Símbolo)

    O nome da associação.

  • opções (Hash) (padrão para: {})

    As opções de associação.

  • &block

    Bloco opcional para definir extensões.



172
173
174
# Arquivo 'lib/mongoid/association/macros.rb', linha 172

def has_many(name, opções = {}, &noum: bloco ; verb: bloquear)
  define_association!(__method__, name, opções, &noum: bloco ; verb: bloquear)
end

#has_one(name, options = {}, &block) ➤ Object

Adiciona uma associação referenciada do Documento filho para um Documento em outro banco de dados ou coleção.

Exemplos:

Defina a associação.


class Game
  include Mongoid::Document
  belongs_to :person
end

class Person
  include Mongoid::Document
  has_one :game
end

Parâmetros:

  • name (Símbolo)

    O nome da associação.

  • opções (Hash) (padrão para: {})

    As opções de associação.

  • &block

    Bloco opcional para definir extensões.



216
217
218
# Arquivo 'lib/mongoid/association/macros.rb', linha 216

def has_one(name, opções = {}, &noum: bloco ; verb: bloquear)
  define_association!(__method__, name, opções, &noum: bloco ; verb: bloquear)
end