diff options
author | Vijay Dev <vijaydev.cse@gmail.com> | 2012-01-19 23:21:28 +0530 |
---|---|---|
committer | Vijay Dev <vijaydev.cse@gmail.com> | 2012-01-19 23:22:01 +0530 |
commit | a0e439f2f8ac0a9992b6b2b0086bda2a20544296 (patch) | |
tree | 7f806655a5b419e0c5e36637bfcdf2ab50460b40 /railties/guides | |
parent | 6e311b93adf295b97a1ad6056675d32ff51b212f (diff) | |
download | rails-a0e439f2f8ac0a9992b6b2b0086bda2a20544296.tar.gz rails-a0e439f2f8ac0a9992b6b2b0086bda2a20544296.tar.bz2 rails-a0e439f2f8ac0a9992b6b2b0086bda2a20544296.zip |
document AR::Base#with_lock in release notes [ci skip]
Diffstat (limited to 'railties/guides')
-rw-r--r-- | railties/guides/source/3_2_release_notes.textile | 27 |
1 files changed, 27 insertions, 0 deletions
diff --git a/railties/guides/source/3_2_release_notes.textile b/railties/guides/source/3_2_release_notes.textile index 379b7472c6..7b37681406 100644 --- a/railties/guides/source/3_2_release_notes.textile +++ b/railties/guides/source/3_2_release_notes.textile @@ -373,6 +373,33 @@ has_many :clients, :class_name => :Client # Note that the symbol need to be capi User.where(:first_name => "Scarlett").first_or_create!(:last_name => "Johansson") </ruby> +* Added a <tt>with_lock</tt> method to Active Record objects, which starts a transaction, locks the object (pessimistically) and yields to the block. The method takes one (optional) parameter and passes it to +lock!+. + +This makes it possible to write the following: + +<ruby> +class Order < ActiveRecord::Base + def cancel! + transaction do + lock! + # ... cancelling logic + end + end +end +</ruby> + +as: + +<ruby> +class Order < ActiveRecord::Base + def cancel! + with_lock do + # ... cancelling logic + end + end +end +</ruby> + h4. Deprecations * Automatic closure of connections in threads is deprecated. For example the following code is deprecated: |