Module: Mongoid::Relations::Builders::ClassMethods
- Defined in:
- lib/mongoid/relations/builders.rb
Overview
:nodoc:
Instance Method Summary collapse
-
#builder(name, metadata) ⇒ Class
Defines a builder method for an embeds_one relation.
-
#creator(name, metadata) ⇒ Class
Defines a creator method for an embeds_one relation.
Instance Method Details
#builder(name, metadata) ⇒ Class
Defines a builder method for an embeds_one relation. This is defined as #build_name.
65 66 67 68 69 70 71 72 73 74 75 |
# File 'lib/mongoid/relations/builders.rb', line 65 def builder(name, ) tap do define_method("build_#{name}") do |*args| attributes, = parse_args(*args) document = Factory.build(.klass, attributes, ) _building do send("#{name}=", document).tap {|child| child.run_callbacks(:build) } end end end end |
#creator(name, metadata) ⇒ Class
Defines a creator method for an embeds_one relation. This is defined as #create_name. After the object is built it will immediately save.
89 90 91 92 93 94 95 96 97 |
# File 'lib/mongoid/relations/builders.rb', line 89 def creator(name, ) tap do define_method("create_#{name}") do |*args| attributes, = parse_args(*args) document = Factory.build(.klass, attributes, ) send("#{name}=", document).tap { |doc| doc.save } end end end |