diff options
author | Santiago Pastorino <santiago@wyeworks.com> | 2014-08-11 09:11:31 -0300 |
---|---|---|
committer | Santiago Pastorino <santiago@wyeworks.com> | 2014-08-11 09:11:31 -0300 |
commit | b45b99894a60eda434abec94d133a1cfd8de2dda (patch) | |
tree | a3e62ee239e39461070ddef9c538e8e67d40e7fc | |
parent | 49798b52bfaaa452f1c535ca932cc267482348fe (diff) | |
parent | 0f99aa615e11c50cc64b567f54cf64f59108c5e5 (diff) | |
download | rails-b45b99894a60eda434abec94d133a1cfd8de2dda.tar.gz rails-b45b99894a60eda434abec94d133a1cfd8de2dda.tar.bz2 rails-b45b99894a60eda434abec94d133a1cfd8de2dda.zip |
Merge pull request #16456 from lsylvester/improve-active-record-error-message-on-update_columns-for-destroyed-records
Change error message in update_columns for destroyed objects
-rw-r--r-- | activerecord/CHANGELOG.md | 6 | ||||
-rw-r--r-- | activerecord/lib/active_record/persistence.rb | 3 |
2 files changed, 8 insertions, 1 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 4b70d883fe..ea951fdfd1 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,3 +1,9 @@ +* When calling `update_columns` on a record that is not persisted, the error + message now reflects whether that object is a new record or has been + destroyed. + + *Lachlan Sylvester* + * Define `id_was` to get the previous value of the primary key. Currently when we call id_was and we have a custom primary key name diff --git a/activerecord/lib/active_record/persistence.rb b/activerecord/lib/active_record/persistence.rb index b5799d6bff..51b1931ed5 100644 --- a/activerecord/lib/active_record/persistence.rb +++ b/activerecord/lib/active_record/persistence.rb @@ -287,7 +287,8 @@ module ActiveRecord # This method raises an +ActiveRecord::ActiveRecordError+ when called on new # objects, or when at least one of the attributes is marked as readonly. def update_columns(attributes) - raise ActiveRecordError, "cannot update on a new record object" unless persisted? + raise ActiveRecordError, "cannot update a new record" if new_record? + raise ActiveRecordError, "cannot update a destroyed record" if destroyed? attributes.each_key do |key| verify_readonly_attribute(key.to_s) |