Sha256: d3d1afb4fafd47190997799a9ce49478b558255a981705ca43fa80a3626d5de0
Contents?: true
Size: 1.06 KB
Versions: 20
Compression:
Stored size: 1.06 KB
Contents
module ActiveRecord # = Active Record Has One Through Association module Associations class HasOneThroughAssociation < HasOneAssociation #:nodoc: include ThroughAssociation def replace(record) create_through_record(record) self.target = record end private def create_through_record(record) ensure_not_nested through_proxy = owner.association(through_reflection.name) through_record = through_proxy.load_target if through_record && !record through_record.destroy elsif record attributes = construct_join_attributes(record) if through_record && through_record.destroyed? through_record = through_proxy.tap(&:reload).target end if through_record through_record.update(attributes) elsif owner.new_record? through_proxy.build(attributes) else through_proxy.create(attributes) end end end end end end
Version data entries
20 entries across 20 versions & 1 rubygems