diff options
author | schneems <richard.schneeman@gmail.com> | 2016-01-07 16:38:39 -0600 |
---|---|---|
committer | schneems <richard.schneeman@gmail.com> | 2016-01-08 14:29:31 -0600 |
commit | 57155064d135d67e0624d561c2badfe018b27a3a (patch) | |
tree | 4f3468cd57aa612c07811af8f033dc89a214ac7d | |
parent | 76c385709c873a7105e3a267d84c4e70417a15e2 (diff) | |
download | rails-57155064d135d67e0624d561c2badfe018b27a3a.tar.gz rails-57155064d135d67e0624d561c2badfe018b27a3a.tar.bz2 rails-57155064d135d67e0624d561c2badfe018b27a3a.zip |
Get update_attributes working with SchemaMigration
You cannot use `update_attributes` on models that do not have a primary key. Since SchemaMigration versions are guaranteed to be unique (they have a unique index on them) we can safely use them as a primary key.
-rw-r--r-- | activerecord/lib/active_record/schema_migration.rb | 2 | ||||
-rw-r--r-- | activerecord/test/cases/ar_schema_test.rb | 4 |
2 files changed, 3 insertions, 3 deletions
diff --git a/activerecord/lib/active_record/schema_migration.rb b/activerecord/lib/active_record/schema_migration.rb index 51b9b17395..3017ee0bbb 100644 --- a/activerecord/lib/active_record/schema_migration.rb +++ b/activerecord/lib/active_record/schema_migration.rb @@ -9,7 +9,7 @@ module ActiveRecord class SchemaMigration < ActiveRecord::Base # :nodoc: class << self def primary_key - nil + "version" end def table_name diff --git a/activerecord/test/cases/ar_schema_test.rb b/activerecord/test/cases/ar_schema_test.rb index 9d5327bf35..1f32c48b95 100644 --- a/activerecord/test/cases/ar_schema_test.rb +++ b/activerecord/test/cases/ar_schema_test.rb @@ -21,10 +21,10 @@ if ActiveRecord::Base.connection.supports_migrations? ActiveRecord::Migration.verbose = @original_verbose end - def test_has_no_primary_key + def test_has_has_primary_key old_primary_key_prefix_type = ActiveRecord::Base.primary_key_prefix_type ActiveRecord::Base.primary_key_prefix_type = :table_name_with_underscore - assert_nil ActiveRecord::SchemaMigration.primary_key + assert_equal "version", ActiveRecord::SchemaMigration.primary_key ActiveRecord::SchemaMigration.create_table assert_difference "ActiveRecord::SchemaMigration.count", 1 do |