Observers in Sub-directories in Edge Rails

Hello,

I haven't had the opportunity to play with Edge Rails recently, but upon testing out a new app in it, found that having observers in sub-directories doesn't work out of the box.

i.e. our app/models folder looks something like: models/   - attachment.rb   - beta_code.rb   billing/    - biller.rb    - coupon.rb   observers/    - conversation_observer.rb    - feed_observer.rb

Putting them in subdirectories was done just to keep things in the app/models folder somewhat manageable & organized.

Just counted our models, we're now up to 47! (and they said Rails was only for toy scaffolding apps... =))

So, for example the billing/biller.rb model definition looks like: class Biller   ... end

Not, "Billing::Biller"...

A few questions:

1) Any advice on models directory organization going forward (i.e. for Edge Rails & Rails 2.0)? (i.e. is our setup going to be OK, or what is recommended when you have this many models)

2) Is it OK to keep Observers in a subdirectory within app/models?

So this line in environment.rb: ConversationObserver.instance

Was causing this error:

/ ... long path ... /activesupport/lib/active_support/dependencies.rb:251:in `load_missing_constant': uninitialized constant CannedReplyObserver (NameError)

Not so much worried about that. Should I open a ticket for this or is it just expected behavior?

Adding this to environment.rb did the trick anyway: Dir["#{RAILS_ROOT}/app/models/observers/*"].each do |path|   filename = path.split('/').last.sub('.rb', '')   require "app/models/observers/#{filename}" end

Thanks!

Shanti

http://sablog.com/

I believe this may shed some light on the subject:

http://i.nfectio.us/articles/2006/09/07/autoload-support-for-models-in-subdirectories-removed

Thanks! That did the trick.