Forum: Ruby on Rails RESTful app and refactoring code in different controllers

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
6c3acc025a63460a367b7981e606e032?d=identicon&s=25 Neubyr Neubyr (neubyr)
on 2009-03-03 20:32
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.

-
CS.
170e2a48994775e4c298c302e6814f81?d=identicon&s=25 Starr Horne (Guest)
on 2009-03-03 20:38
(Received via mailing list)
> 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

--
Starr Horne
My blog: http://starrhorne.com
Check out my Helpdesk RailsKit: http://railskits.com/helpdesk/
6c3acc025a63460a367b7981e606e032?d=identicon&s=25 Neubyr Neubyr (neubyr)
on 2009-03-03 21:08
Thanks Starr.

I tried that...
But each individual item in a topic can be edited/deleted or new one
could be added to the topic. In addition, each one has some filter on
who can edit/delete etc..

I am unable to add these add/edit/delete links to these items. Does it
mean something is wrong with my config/routes file?
Apart from default route, right now I have:
map.resources :topic, :has_many => items, :collection =>
{:populate_counties => post}
Step by step I will add other resource associations (e.g.: map.resources
:items :has_many :attachments) - when I am sure whats the right way to
do it.

Any clues?

Thanks,
CS.

Starr Horne wrote:
>> 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
>
> --
> Starr Horne
> My blog: http://starrhorne.com
> Check out my Helpdesk RailsKit: http://railskits.com/helpdesk/
6c3acc025a63460a367b7981e606e032?d=identicon&s=25 Neubyr Neubyr (neubyr)
on 2009-03-06 04:29
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:
> Thanks Starr.
>
> I tried that...
> But each individual item in a topic can be edited/deleted or new one
> could be added to the topic. In addition, each one has some filter on
> who can edit/delete etc..
>
> I am unable to add these add/edit/delete links to these items. Does it
> mean something is wrong with my config/routes file?
> Apart from default route, right now I have:
> map.resources :topic, :has_many => items, :collection =>
> {:populate_counties => post}
> Step by step I will add other resource associations (e.g.: map.resources
> :items :has_many :attachments) - when I am sure whats the right way to
> do it.
>
> Any clues?
>
> Thanks,
> CS.
>
> Starr Horne wrote:
>>> 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
>>
>> --
>> Starr Horne
>> My blog: http://starrhorne.com
>> Check out my Helpdesk RailsKit: http://railskits.com/helpdesk/
This topic is locked and can not be replied to.