This page contains automated test results for code from O'Reilly's Ruby Cookbook. If this code looks interesting or useful, you might want to buy the whole book.
Adding Hooks to Table Events | ||
---|---|---|
Code | Expected | Actual |
require 'cookbook_dbconnect' require 'og' require 'glue/aspects' class BlogPost property :title, :content, String after :on => :og_insert do |post| puts %{Sending email notification of new post "#{post.title}"} # Actually send the email here... end end og_connect post = BlogPost.new post.title = 'Robots are taking over' post.content = 'Think about it! When was the last time you saw another human?' post.save! |
Sending email notification of new post "Robots are taking over" |
Sending email notification of new post "Robots are taking over" |
require 'cookbook_dbconnect' activerecord_connect class BlogPost < ActiveRecord::Base def after_create puts %{Sending email notification of new blog post "#{title}"} # Actually send the email here... end end post = BlogPost.create(:title => 'Robots: Gentle Yet Misunderstood', :content => 'Popular misconceptions about robERROR 40') |
Sending email notification of new blog post "Robots: Gentle Yet Misunderstood |
Error! (Exception?) Here's stdout: TypeError: superclass mismatch for class BlogPost from (irb):18 from :0 ArgumentError: wrong number of arguments (1 for 0) from /usr/lib/ruby/gems/1.8/gems/og-0.29.0/lib/og/entity.rb:123:in `initialize' from /usr/lib/ruby/gems/1.8/gems/og-0.29.0/lib/og/entity.rb:123:in `create' from (irb):24 from :0 |
require 'cookbook_dbconnect' activerecord_connect class BlogPost < ActiveRecord::Base end class MailObserver < ActiveRecord::Observer observe BlogPost def after_create(post) puts %{Sending email notification of new blog post "#{post.title}"} # Actually send the email here. end end ActiveRecord::Base.observers = MailObserver post = BlogPost.new(:title => "ERROR 40", :content => "ERROR ERROR ERROR ERROR ERROR") post.save |
Sending email notification of new blog post "ERROR 40" environment.rb |
TypeError: superclass mismatch for class BlogPost from (irb):28 from :0 NoMethodError: undefined method `add_observer' for BlogPost:Class from /usr/lib/ruby/gems/1.8/gems/og-0.29.0/lib/og/entity.rb:477:in `method_missing' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.0/lib/active_record/observer.rb:117:in `initialize' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.0/lib/active_record/observer.rb:116:in `initialize' from /usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:21:in `new' from /usr/lib/ruby/1.8/singleton.rb:95:in `instance' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.0/lib/active_record/observer.rb:25:in `observers=' from /usr/lib/ruby/gems/1.8/gems/activerecord-1.14.0/lib/active_record/observer.rb:22:in `observers=' from (irb):37 from :0 ArgumentError: wrong number of arguments (1 for 0) from (irb):38:in `initialize' from (irb):38 from :0 |
config.active_record.observers = MailObserver |
... |
NameError: undefined local variable or method `config' for #<Object:0xb7d66970> from (irb):41 from :0 |