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://sproutit.com/
http://sablog.com/


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Core" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-core
-~----------~----~----~----~------~----~------~--~---

Reply via email to