diff options
author | Jonathan del Strother <jon.delStrother@audioboo.fm> | 2015-01-05 19:42:39 +0000 |
---|---|---|
committer | Jonathan del Strother <jon.delStrother@audioboo.fm> | 2015-01-05 20:47:41 +0000 |
commit | f634c1fcf4796f633685f6801e260e0e792e547e (patch) | |
tree | 67a065419c9db61380dcf87ba782cadd09f5bb78 /activerecord/lib/active_record | |
parent | c7a1fa364012c70e76d19b36881c9bde016091b8 (diff) | |
download | rails-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.rb | 2 |
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 |