aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/test/models/post.rb
diff options
context:
space:
mode:
Diffstat (limited to 'activerecord/test/models/post.rb')
-rw-r--r--activerecord/test/models/post.rb14
1 files changed, 14 insertions, 0 deletions
diff --git a/activerecord/test/models/post.rb b/activerecord/test/models/post.rb
index fcfe260d4a..22c5a645b8 100644
--- a/activerecord/test/models/post.rb
+++ b/activerecord/test/models/post.rb
@@ -46,6 +46,20 @@ class Post < ActiveRecord::Base
has_many :readers
has_many :people, :through => :readers
+ has_many :people_with_callbacks, :source=>:person, :through => :readers,
+ :before_add => lambda {|owner, reader| log(:added, :before, reader.first_name) },
+ :after_add => lambda {|owner, reader| log(:added, :after, reader.first_name) },
+ :before_remove => lambda {|owner, reader| log(:removed, :before, reader.first_name) },
+ :after_remove => lambda {|owner, reader| log(:removed, :after, reader.first_name) }
+
+ def self.reset_log
+ @log = []
+ end
+
+ def self.log(message=nil, side=nil, new_record=nil)
+ return @log if message.nil?
+ @log << [message, side, new_record]
+ end
def self.what_are_you
'a post...'