1
0
Fork 0
mirror of https://github.com/rails/rails.git synced 2022-11-09 12:12:34 -05:00

Add CHANGELOG entry and update the guide

This commit is contained in:
John Foley 2012-09-23 12:49:34 -06:00
parent 60c65ca8df
commit f31ea4df3a
2 changed files with 23 additions and 0 deletions

View file

@ -1,5 +1,9 @@
## Rails 4.0.0 (unreleased) ## ## Rails 4.0.0 (unreleased) ##
* Allow before and after validations to take an array of lifecycle events
*John Foley*
* Support for specifying transaction isolation level * Support for specifying transaction isolation level
If your database supports setting the isolation level for a transaction, you can set If your database supports setting the isolation level for a transaction, you can set

View file

@ -995,6 +995,25 @@ class User < ActiveRecord::Base
end end
``` ```
Callbacks can also be registered to only fire on certain lifecycle events:
<ruby>
class User < ActiveRecord::Base
before_validation :normalize_name, :on => :create
# :on takes an array as well
after_validation :set_location, :on => [ :create, :update ]
protected
def normalize_name
self.name = self.name.downcase.titleize
end
def set_location
self.location = LocationService.query(self)
end
end
</ruby>
It is considered good practice to declare callback methods as protected or private. If left public, they can be called from outside of the model and violate the principle of object encapsulation. It is considered good practice to declare callback methods as protected or private. If left public, they can be called from outside of the model and violate the principle of object encapsulation.
Available Callbacks Available Callbacks