Sha256: cbc1998863e44b5154770b9da51d175995d1ef1ae0d8ee30241ed8882fd89fcf

Contents?: true

Size: 1.13 KB

Versions: 12

Compression:

Stored size: 1.13 KB

Contents

module ActiveRecord
  module Associations
    class AssociationProxy
      def full_columns_equals(table_name, keys, quoted_ids)
        quoted_table_name = @owner.connection.quote_table_name(table_name)

        keys = [keys].flatten
        ids = [quoted_ids].flatten

        [keys,ids].transpose.map do |key, id|
        "(#{quoted_table_name}.#{@owner.connection.quote_column_name(key)} = #{id})"
        end.join(' AND ')
      end

      def set_belongs_to_association_for(record)
        if @reflection.options[:as]
          record["#{@reflection.options[:as]}_id"]   = @owner.id unless @owner.new_record?
          record["#{@reflection.options[:as]}_type"] = @owner.class.base_class.name.to_s
        else
          unless @owner.new_record?
            primary_key = @reflection.options[:primary_key] || :id
            # CPK
            # record[@reflection.primary_key_name] = @owner.send(primary_key)
            values = [@owner.send(primary_key)].flatten
            key_values = @reflection.cpk_primary_key.zip(values)
            key_values.each {|key, value| record[key] = value}
          end
        end
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
composite_primary_keys-3.1.5 lib/composite_primary_keys/associations/association_proxy.rb
composite_primary_keys-3.1.4 lib/composite_primary_keys/associations/association_proxy.rb
composite_primary_keys-3.1.2 lib/composite_primary_keys/associations/association_proxy.rb
composite_primary_keys-3.1.1 lib/composite_primary_keys/associations/association_proxy.rb
composite_primary_keys-3.1.0 lib/composite_primary_keys/associations/association_proxy.rb
composite_primary_keys-3.0.9 lib/composite_primary_keys/associations/association_proxy.rb
composite_primary_keys-3.0.8 lib/composite_primary_keys/associations/association_proxy.rb
composite_primary_keys-3.0.7 lib/composite_primary_keys/associations/association_proxy.rb
composite_primary_keys-3.0.4 lib/composite_primary_keys/associations/association_proxy.rb
composite_primary_keys-3.0.3 lib/composite_primary_keys/associations/association_proxy.rb
composite_primary_keys-3.0.0.b3 lib/composite_primary_keys/associations/association_proxy.rb
composite_primary_keys-3.0.0.b2 lib/composite_primary_keys/associations/association_proxy.rb