module ActiveModel::Embedding::Associations::ClassMethods
Public Instance Methods
embedded_associations()
click to toggle source
# File lib/active_model/embedding/associations.rb, line 60 def embedded_associations class_variable_get :@@embedded_associations end
embeds_many(attr_name, class_name: nil, cast_type: nil, collection: nil)
click to toggle source
# File lib/active_model/embedding/associations.rb, line 33 def embeds_many(attr_name, class_name: nil, cast_type: nil, collection: nil) class_name = cast_type ? nil : class_name || infer_class_name_from(attr_name) attribute :"#{attr_name}", :document, class_name: class_name, cast_type: cast_type, collection: collection || true, context: self.to_s register_embedded_association attr_name nested_attributes_for attr_name end
embeds_one(attr_name, class_name: nil, cast_type: nil)
click to toggle source
# File lib/active_model/embedding/associations.rb, line 47 def embeds_one(attr_name, class_name: nil, cast_type: nil) class_name = cast_type ? nil : class_name || infer_class_name_from(attr_name) attribute :"#{attr_name}", :document, class_name: class_name, cast_type: cast_type, context: self.to_s register_embedded_association attr_name nested_attributes_for attr_name end
Private Instance Methods
infer_class_name_from(attr_name)
click to toggle source
# File lib/active_model/embedding/associations.rb, line 66 def infer_class_name_from(attr_name) attr_name.to_s.singularize.camelize end
nested_attributes_for(attr_name)
click to toggle source
# File lib/active_model/embedding/associations.rb, line 74 def nested_attributes_for(attr_name) delegate :attributes=, to: :"#{attr_name}", prefix: true end
register_embedded_association(name)
click to toggle source
# File lib/active_model/embedding/associations.rb, line 70 def register_embedded_association(name) embedded_associations << name end