aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record
diff options
context:
space:
mode:
authorJonathan del Strother <jon.delStrother@audioboo.fm>2015-01-05 19:42:39 +0000
committerJonathan del Strother <jon.delStrother@audioboo.fm>2015-01-05 20:47:41 +0000
commitf634c1fcf4796f633685f6801e260e0e792e547e (patch)
tree67a065419c9db61380dcf87ba782cadd09f5bb78 /activerecord/lib/active_record
parentc7a1fa364012c70e76d19b36881c9bde016091b8 (diff)
downloadrails-f634c1fcf4796f633685f6801e260e0e792e547e.tar.gz
rails-f634c1fcf4796f633685f6801e260e0e792e547e.tar.bz2
rails-f634c1fcf4796f633685f6801e260e0e792e547e.zip
Fix rollback of primarykey-less tables
If you have a table without a primary key, and an `after_commit` callback on that table (ie `has_transactional_callbacks?` returns true), then trying to rollback a transaction involving that record would result in “ActiveModel::MissingAttributeError: can't write unknown attribute ``”
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r--activerecord/lib/active_record/transactions.rb2
1 files changed, 1 insertions, 1 deletions
diff --git a/activerecord/lib/active_record/transactions.rb b/activerecord/lib/active_record/transactions.rb
index 31ca90fb58..97648ec898 100644
--- a/activerecord/lib/active_record/transactions.rb
+++ b/activerecord/lib/active_record/transactions.rb
@@ -387,7 +387,7 @@ module ActiveRecord
thaw unless restore_state[:frozen?]
@new_record = restore_state[:new_record]
@destroyed = restore_state[:destroyed]
- write_attribute(self.class.primary_key, restore_state[:id])
+ write_attribute(self.class.primary_key, restore_state[:id]) if self.class.primary_key
end
end
end