diff options
author | Johannes Barre <igel@igels.net> | 2012-05-10 13:47:50 +0200 |
---|---|---|
committer | Johannes Barre <igel@igels.net> | 2012-05-17 17:52:17 +0200 |
commit | a8b370f5c2fed87001e363d18ce60a47c1748885 (patch) | |
tree | 0b7d8182025899135edffdae6de8b734b96c0d7a | |
parent | 85ac14309c7b6faf846072fc012e14a0f31694e9 (diff) | |
download | rails-a8b370f5c2fed87001e363d18ce60a47c1748885.tar.gz rails-a8b370f5c2fed87001e363d18ce60a47c1748885.tar.bz2 rails-a8b370f5c2fed87001e363d18ce60a47c1748885.zip |
Don't destroy readonly models
-rw-r--r-- | activerecord/CHANGELOG.md | 5 | ||||
-rw-r--r-- | activerecord/lib/active_record/persistence.rb | 1 | ||||
-rw-r--r-- | activerecord/test/cases/readonly_test.rb | 1 |
3 files changed, 7 insertions, 0 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 198b054f99..11fd0e7047 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,5 +1,10 @@ ## Rails 4.0.0 (unreleased) ## +* It's not possible anymore to destroy a model marked as read only. + + *Johannes Barre* + + * Added ability to ActiveRecord::Relation#from to accept other ActiveRecord::Relation objects Record.from(subquery) diff --git a/activerecord/lib/active_record/persistence.rb b/activerecord/lib/active_record/persistence.rb index 4a987c2343..a1bc39a32d 100644 --- a/activerecord/lib/active_record/persistence.rb +++ b/activerecord/lib/active_record/persistence.rb @@ -123,6 +123,7 @@ module ActiveRecord # Deletes the record in the database and freezes this instance to reflect # that no changes should be made (since they can't be persisted). def destroy + raise ReadOnlyRecord if readonly? destroy_associations destroy_row if persisted? @destroyed = true diff --git a/activerecord/test/cases/readonly_test.rb b/activerecord/test/cases/readonly_test.rb index 39b66b3399..df0399f548 100644 --- a/activerecord/test/cases/readonly_test.rb +++ b/activerecord/test/cases/readonly_test.rb @@ -23,6 +23,7 @@ class ReadOnlyTest < ActiveRecord::TestCase end assert_raise(ActiveRecord::ReadOnlyRecord) { dev.save } assert_raise(ActiveRecord::ReadOnlyRecord) { dev.save! } + assert_raise(ActiveRecord::ReadOnlyRecord) { dev.destroy } end |