Module: Dynamoid::Fields
Overview
All fields on a Dynamoid::Document must be explicitly defined – if you have fields in the database that are not specified with field, then they will be ignored.
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- PERMITTED_KEY_TYPES =
Types allowed in indexes:
[ :number, :integer, :string, :datetime, :serialized, ]
Instance Attribute Summary collapse
-
#attributes ⇒ Object
(also: #raw_attributes)
You can access the attributes of an object directly on its attributes method, which is by default an empty hash.
Instance Method Summary collapse
-
#read_attribute(name) ⇒ Object
(also: #[])
Read an attribute from an object.
-
#update_attribute(attribute, value) ⇒ Object
Update a single attribute, saving the object afterwards.
-
#update_attributes(attributes) ⇒ Object
Updates multiple attibutes at once, saving the object once the updates are complete.
-
#write_attribute(name, value) ⇒ Object
(also: #[]=)
Write an attribute on the object.
Instance Attribute Details
#attributes ⇒ Object Also known as: raw_attributes
You can access the attributes of an object directly on its attributes method, which is by default an empty hash.
106 107 108 |
# File 'lib/dynamoid/fields.rb', line 106 def attributes @attributes end |
Instance Method Details
#read_attribute(name) ⇒ Object Also known as: []
Read an attribute from an object.
129 130 131 |
# File 'lib/dynamoid/fields.rb', line 129 def read_attribute(name) attributes[name.to_sym] end |
#update_attribute(attribute, value) ⇒ Object
Update a single attribute, saving the object afterwards.
150 151 152 153 |
# File 'lib/dynamoid/fields.rb', line 150 def update_attribute(attribute, value) write_attribute(attribute, value) save end |
#update_attributes(attributes) ⇒ Object
Updates multiple attibutes at once, saving the object once the updates are complete.
139 140 141 142 |
# File 'lib/dynamoid/fields.rb', line 139 def update_attributes(attributes) attributes.each {|attribute, value| self.write_attribute(attribute, value)} unless attributes.nil? || attributes.empty? save end |
#write_attribute(name, value) ⇒ Object Also known as: []=
Write an attribute on the object. Also marks the previous value as dirty.
115 116 117 118 119 120 121 |
# File 'lib/dynamoid/fields.rb', line 115 def write_attribute(name, value) if association = @associations[name] association.reset end attributes[name.to_sym] = value end |