Sha256: afe3d6c63e409ed4b9f834d03831dc94180abc14f68ccc9fad9913481fb7de36
Contents?: true
Size: 1.11 KB
Versions: 10
Compression:
Stored size: 1.11 KB
Contents
module ActiveRecord module Associations class AssociationCollection include Hobo::Scopes::ApplyScopes def hobo_association_collection? Hobo::Model.in?(@owner.class.included_modules) end def new_candidate(attributes = {}) record = new @target.delete record set_reverse_association(record) if hobo_association_collection? record end def user_new_candidate(user, attributes = {}) record = user_new(user, attributes) @target.delete record set_reverse_association(record) if hobo_association_collection? record end def member_class proxy_reflection.klass end private def set_reverse_association(object) if @owner.new_record? && (refl = @owner.class.reverse_reflection(@reflection.name)) && refl.macro == :belongs_to bta = ActiveRecord::Associations::BelongsToAssociation.new(object, refl) bta.replace(@owner) object.instance_variable_set("@#{refl.name}", bta) end end end end end
Version data entries
10 entries across 10 versions & 1 rubygems