diff options
author | Olek Janiszewski <olek.janiszewski@gmail.com> | 2013-02-26 16:55:18 +0100 |
---|---|---|
committer | Olek Janiszewski <olek.janiszewski@gmail.com> | 2013-02-26 18:46:10 +0100 |
commit | dce4383319d8fcccc26d12fc0bbd4b19a149ee41 (patch) | |
tree | 3f88586fff65fffde8eaa2f8ba45eeac7312f5a7 /activerecord/CHANGELOG.md | |
parent | e24e086ef1de73beffc0870cb37d6ae42cbbd2c8 (diff) | |
download | rails-dce4383319d8fcccc26d12fc0bbd4b19a149ee41.tar.gz rails-dce4383319d8fcccc26d12fc0bbd4b19a149ee41.tar.bz2 rails-dce4383319d8fcccc26d12fc0bbd4b19a149ee41.zip |
Fix touching an invalid parent record for belongs_to
If the parent of a `belongs_to` record fails to be saved due to
validation errors, `touch` will be called on a new record, which causes
an exception (see https://github.com/rails/rails/pull/9320).
Example:
class Owner < ActiveRecord::Base
validates_presence_of :name
end
class Pet < ActiveRecord::Base
belongs_to :owner, touch: true
end
pet = Pet.new(owner: Owner.new)
# Before, this line would raise ActiveRecord::ActiveRecordError
# "can not touch on a new record object"
pet.save
Diffstat (limited to 'activerecord/CHANGELOG.md')
-rw-r--r-- | activerecord/CHANGELOG.md | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 982fbdc236..44f3115add 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,5 +1,10 @@ ## Rails 4.0.0 (unreleased) ## +* Do not try to touch invalid (and thus not persisted) parent record + for a `belongs_to :parent, touch: true` association + + *Olek Janiszewski* + * Fix when performing an ordered join query. The bug only affected queries where the order was given with a symbol. Fixes #9275. @@ -12,7 +17,7 @@ ## Rails 4.0.0.beta1 (February 25, 2013) ## -* Fix overriding of attributes by default_scope on `ActiveRecord::Base#dup`. +* Fix overriding of attributes by `default_scope` on `ActiveRecord::Base#dup`. *Hiroshige UMINO* |