Ruby on Rails Saturday, July 2, 2011

Thanks Rob. That almost fixed it. Solution is this:


1. Create a file called rails/init.rb
2. Put this in it:

config.after_initialize do
  ActiveRecord::Base.observers << Authorizer::UserObserver
  ActiveRecord::Base.observers << Authorizer::ObjectObserver
end

No more need for the user to mess with config/environment.rb.

I found it thanks to

It also works fine in development mode. Because of the post from Riotproject I was expecting trouble, but this hasn't occurred. 

On Sat, Jul 2, 2011 at 3:55 PM, Rob Biedenharn <Rob@agileconsultingllc.com> wrote:

On Jul 2, 2011, at 5:17 AM, Commander Johnson wrote:

Hey,

I have a gem called 'authorizer' which does authorization for me. It has two observer classes that need to be added to the list of ActiveRecord observers:

config/environment.rb:

require "authorizer/user_observer"
require "authorizer/object_observer"

config.active_record.observers = "Authorizer::UserObserver", "Authorizer::ObjectObserver"

This gives me the error:

`load_missing_constant': uninitialized constant Authorizer::ActiveRecord (NameError)

This problem is solved by copying the gem's source files into the lib/ folder or by using a plugin. But I don't want that. How can I ensure the gem is loaded AFTER the Rails framework is loaded?

This is on Rails 2.3.11

All the best,
CmdJohnson

I'm not sure if this works when you have to reference the 'config' object, but you can wrap code inside a block and use the #after_initialize method:

config.after_initialize do
  config.active_record.observers = "Authorizer::UserObserver", "Authorizer::ObjectObserver"
end

-Rob


--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

--
You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group.
To post to this group, send email to rubyonrails-talk@googlegroups.com.
To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.

No comments:

Post a Comment