Sha256: a554217b6efe6f09d7f59d52a65a7a708623e3ecfbcf140a9c05a7dd5dfbffc6

Contents?: true

Size: 1.16 KB

Versions: 23

Compression:

Stored size: 1.16 KB

Contents

# This file contains extensions, overrides, and monkey patches to core parts
# of active record to allow SQL Server work properly.
#
module ActiveRecord
  module ConnectionAdapters
    module MSSQL
      module AttributeMethods

        private

        # Overrides the original attributes_for_update merthod to reject
        # primary keys because SQL Server does not allow updates
        # of identity columns.
        # NOTE: rails 4.1 used to reject primary keys but later changes broke
        # this behaviour, even the current comments for that method says that
        # it rejects primary key but it doesn't (maybe a rails bug?)
        def attributes_for_update(attribute_names)
          attribute_names.reject do |name|
            # It seems is only required to check if column in identity or not.
            # This allows to update rails custom primary keys
            next true if readonly_attribute?(name)

            column = self.class.columns_hash[name]
            column && column.identity?
          end
        end
      end
    end
  end
end

module ActiveRecord
  class Base
    include ActiveRecord::ConnectionAdapters::MSSQL::AttributeMethods
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
activerecord-jdbc-alt-adapter-52.6.0-java lib/arjdbc/mssql/extensions/attribute_methods.rb
activerecord-jdbc-alt-adapter-51.7.0-java lib/arjdbc/mssql/extensions/attribute_methods.rb
activerecord-jdbc-alt-adapter-50.7.0-java lib/arjdbc/mssql/extensions.rb
activerecord-jdbc-alt-adapter-52.5.1-java lib/arjdbc/mssql/extensions/attribute_methods.rb
activerecord-jdbc-alt-adapter-51.6.1-java lib/arjdbc/mssql/extensions/attribute_methods.rb
activerecord-jdbc-alt-adapter-50.6.1-java lib/arjdbc/mssql/extensions.rb
activerecord-jdbc-alt-adapter-52.4.0-java lib/arjdbc/mssql/extensions/attribute_methods.rb
activerecord-jdbc-alt-adapter-51.5.0-java lib/arjdbc/mssql/extensions/attribute_methods.rb
activerecord-jdbc-alt-adapter-50.5.0-java lib/arjdbc/mssql/extensions.rb
activerecord-jdbc-alt-adapter-50.3.4-java lib/arjdbc/mssql/extensions.rb
activerecord-jdbc-alt-adapter-51.3.4-java lib/arjdbc/mssql/extensions/attribute_methods.rb
activerecord-jdbc-alt-adapter-52.2.3-java lib/arjdbc/mssql/extensions/attribute_methods.rb
activerecord-jdbc-alt-adapter-52.2.2-java lib/arjdbc/mssql/extensions/attribute_methods.rb
activerecord-jdbc-alt-adapter-50.3.3-java lib/arjdbc/mssql/extensions.rb
activerecord-jdbc-alt-adapter-51.3.3-java lib/arjdbc/mssql/extensions/attribute_methods.rb
activerecord-jdbc-alt-adapter-50.3.2-java lib/arjdbc/mssql/extensions.rb
activerecord-jdbc-alt-adapter-51.3.2-java lib/arjdbc/mssql/extensions/attribute_methods.rb
activerecord-jdbc-alt-adapter-52.2.1-java lib/arjdbc/mssql/extensions/attribute_methods.rb
activerecord-jdbc-alt-adapter-51.3.1-java lib/arjdbc/mssql/extensions/attribute_methods.rb
activerecord-jdbc-alt-adapter-52.2.0-java lib/arjdbc/mssql/extensions/attribute_methods.rb