RESTful app and refactoring code in different controllers

My application contains following controllers: 1. Topics 2. Items 3. Attachments 4. Users

Following are the models: 1. Topics has_many items 2. Items has_many attachments 3. Attachments 4. Users has_many topics 5. Cities has_many counties 6. Counties has_many users, topics

A topic contains many items. When I try to display a topic, I need to get its corresponding items, their attachments and display everything in a single page. In addition I have some filters on who can add/edit/delete topics/items. Previously I did it with ugly coding - with all the code pressed in the Topics controller. Now I am trying to make my application RESTful and stuck with many question marks.

How can I render all the topics, items, and attachments in a single page. Previously I used lot of partials wherein main show page would call _topics partial and it would then call _items partial etc...

Now with code being separated in different controllers I am not able to use partials. Is there anyway I can do it? Also how can configure my routes for this application. All I did was map.resources :topic, :has_many => items, but I am not sure whether I doing it right way.

Any help appreciated.

How can I render all the topics, items, and attachments in a single page. Previously I used lot of partials wherein main show page would call _topics partial and it would then call _items partial etc...

There shouldn't be any problem at all doing this.

You'd have a topics page, say yoursite.com/topics/sometopic

Then in the view you just loop through @topic.articles, etc. Just because you have a restful URL scheme, it doesn't mean that your view can only display data from one model.

SH

I think I am doing some mistake in configuring routes. Here is what I have in my routes:   map.resources :agendas do |agendas|     agendas.resources :items

  end

I am not able to access items using this. I can fetch them (list items related to a topic) into my view, but I am not able to form other CRUD links to access them.

Any help appreciated...

Thanks, CS.

Carlos Santana wrote: