Module: ActiveRecord::Marshalling::Methods
Relationships & Source Files | |
Extension / Inclusion / Inheritance Descendants | |
Included In:
| |
Defined in: | activerecord/lib/active_record/marshalling.rb |
Instance Method Summary
Instance Method Details
#_marshal_dump_7_1
[ GitHub ]# File 'activerecord/lib/active_record/marshalling.rb', line 24
def _marshal_dump_7_1 payload = [attributes_for_database, new_record?] cached_associations = self.class.reflect_on_all_associations.select do |reflection| if association_cached?(reflection.name) association = association(reflection.name) association.loaded? || association.target.present? end end unless cached_associations.empty? payload << cached_associations.map do |reflection| [reflection.name, association(reflection.name).target] end end payload end
#marshal_load(state)
[ GitHub ]# File 'activerecord/lib/active_record/marshalling.rb', line 43
def marshal_load(state) attributes_from_database, new_record, associations = state attributes = self.class.attributes_builder.build_from_database(attributes_from_database) init_with_attributes(attributes, new_record) if associations associations.each do |name, target| association(name).target = target rescue ActiveRecord::AssociationNotFoundError # the association no longer exist, we can just skip it. end end end