I'm working on a project that is getting fairly large and I want to nest the controller, model and view files so they each have parent directories. I do not want the nesting to affect any of the routing or any of the functionality, it is purely a organizational thing. ( I want my files organized like this: app/controllers/parent_a/a_controller app/controllers/parent_b/another_controller app/models/parent_a/a_model app/models/parent_b/another_model ) I've read many conflicting things about doing this, and am confused. Some people say that you can simply move the files and it will just work because the different resources will still remain in the same namespace even if they are in different folders. I've tried this, though, and references to models are broken. Is there a better way to do this? Is there something I'm not doing that is breaking my references? Cheers, Ray!
on 2007-04-12 01:17
on 2007-04-12 04:06
On Apr 11, 4:17 pm, Raymond O'Connor <rails-mailing-l...@andreas- s.net> wrote: > I'm working on a project that is getting fairly large and I want to nest > the controller, model and view files so they each have parent > directories. I do not want the nesting to affect any of the routing or > any of the functionality, it is purely a organizational thing. I've had pretty good luck with this. Here's what I've done: 1. For models that are in subfolders, I make sure that the model is in a namespace that can be equivocated to a folder by the Inflector. For example, /app/models/extra/product.rb would look like this: module Util class Product < ActiveRecord::Base end end or you could do class Util::Product < ActiveRecord::Base instead. For controllers, do the same thing - make sure the fully qualified name will match the folder heirarchy. There's one big gotcha, though - your routing will need to specify the full path to the controller, for example map.connect '/products/:action/:id', :controller => 'subfolder/ products' Then everything should work. Jeff