Módulo: Mongoid::Association::Builders
- Estendido por:
- ActiveSupport::Concern
- Incluído em:
- Mongoid::Associação
- Definido em:
- lib/mongoid/association/builders.rb
Visão geral
Este módulo é responsável por definir os métodos de construção e criação usados em associações um para um.
Recolhimento do Resumo do método de classe
-
.define_builder!(associação) ➤ Classe
Define um método de construtor.
-
.define_creater!(associação) ➤ Classe
Define um método de criador.
Detalhes do método de classe
.define_builder!(associação) ⇒ Classe
Define um método de construtor. Isso é definido como #build_name.
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 |
# Arquivo 'lib/mongoid/association/construtores.rb', linha 47 def auto.define_builder!(associação) associação.inverse_class.toque fazer |classe| classe.re_define_method("build_#{associação.name}") fazer |*Args| attributes, type, _opts = parse_args(Args) documento = Factory.execute_build(type || associação.concern_class, attributes, execute_callbacks: false) _construção fazer criança = enviar("#{associação.name}=", documento) criança.run_pending_callbacks criança.run_callbacks(:build) criança end end end end |
.define_creater!(associação) ⇒ Classe
Define um método de criador. Isto é definido como #create_name. Depois que o objeto for construído, ele será salvo imediatamente.
72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 |
# Arquivo 'lib/mongoid/association/construtores.rb', linha 72 def auto.define_creater!(associação) associação.inverse_class.toque fazer |classe| classe.re_define_method("create_#{associação.name}") fazer |*Args| attributes, type, _opts = parse_args(Args) documento = Factory.execute_build(type || associação.concern_class, attributes, execute_callbacks: false) doc = _assigning fazer enviar("#{associação.name}=", documento) end doc.run_pending_callbacks doc.Salvar Salvar se new_record? && associação.stores_foreign_key? doc end end end |