diff options
author | Kuldeep Aggarwal <kd.engineer@yahoo.co.in> | 2013-11-25 18:14:13 +0530 |
---|---|---|
committer | Kuldeep Aggarwal <kd.engineer@yahoo.co.in> | 2013-12-12 16:44:03 +0530 |
commit | bdbb5e3a4210017ab6b984adf11bbae710db7319 (patch) | |
tree | d5775f8ca85e2db7ece38284ad8aac007465ab0f /guides | |
parent | 7ccb482181ee6c47c765406009018a15172812de (diff) | |
download | rails-bdbb5e3a4210017ab6b984adf11bbae710db7319.tar.gz rails-bdbb5e3a4210017ab6b984adf11bbae710db7319.tar.bz2 rails-bdbb5e3a4210017ab6b984adf11bbae710db7319.zip |
[ci skip] added after_touch callback documentation
[ci skip] added more explanation for `after_touch` callback
Diffstat (limited to 'guides')
-rw-r--r-- | guides/source/active_record_callbacks.md | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/guides/source/active_record_callbacks.md b/guides/source/active_record_callbacks.md index ac5e8ffc0c..6cd7848f68 100644 --- a/guides/source/active_record_callbacks.md +++ b/guides/source/active_record_callbacks.md @@ -141,6 +141,55 @@ You have initialized an object! => #<User id: 1> ``` +### `after_touch` + +The `after_touch` callback will be called whenever an Active Record object is touched. + +```ruby +class User < ActiveRecord::Base + after_touch do |user| + puts "You have touched an object" + end +end + +>> u = User.create(name: 'Kuldeep') +=> #<User id: 1, name: "Kuldeep", created_at: "2013-11-25 12:17:49", updated_at: "2013-11-25 12:17:49"> + +>> u.touch +You have touched an object +=> true +``` + +It can be used along with `belongs_to`: + +```ruby +class Employee < ActiveRecord::Base + belongs_to :company, touch: true + after_touch do + puts 'An Employee was touched' + end +end + +class Company < ActiveRecord::Base + has_many :employees + after_touch :log_when_employees_or_company_touched + + private + def log_when_employees_or_company_touched + puts 'Employee/Company was touched' + end +end + +>> @employee = Employee.last +=> #<Employee id: 1, company_id: 1, created_at: "2013-11-25 17:04:22", updated_at: "2013-11-25 17:05:05"> + +# triggers @employee.company.touch +>> @employee.touch +Employee/Company was touched +An Employee was touched +=> true +``` + Running Callbacks ----------------- |