DRYing up Rails Views with Nested Resources
Posted
by viatropos
on Stack Overflow
See other posts from Stack Overflow
or by viatropos
Published on 2010-03-22T21:12:17Z
Indexed on
2010/03/22
23:01 UTC
Read the original article
Hit count: 269
What is your solution to the problem if you have a model that is both not-nested and nested, such as products:
a "Product" can belong_to say an "Event", and a Product can also just be independent.
This means I can have routes like this:
map.resources :products # /products
map.resources :events do |event|
event.resources :products # /events/1/products
end
How do you handle that in your views properly?
Note: this is for an admin panel. I want to be able to have a "Create Event" page, with a side panel for creating tickets (Product), forms, and checking who's rsvp'd. So you'd click on the "Event Tickets" side panel button, and it'd take you to /events/my-new-event/tickets
. But there's also a root "Products" tab for the admin panel, which could list tickets and other random products. The 'tickets' and 'products' views look 90% the same, but the tickets will have some info about the event it belongs to.
It seems like I'd have to have views like this:
- products/index.haml
- products/show.haml
- events/products/index.haml
- events/products/show.haml
But that doesn't seem DRY. Or I could have conditionals checking to see if the product had an Event (@product.event.nil?
), but then the views would be hard to understand.
How do you deal with these situations?
Thanks so much.
© Stack Overflow or respective owner