Have you checked out Ryan Bates railscasts - you might try
http://railscasts.com/episodes/7-all-about-layouts
He also has some other ones on layouts. His railscasts are great
Owen
On Oct 1, 10:32 am, Garrett Berneche <[EMAIL PROTECTED]>
wrote:
> I don't know why I though the third method worked...anyway, a little
> tweaking gives me this, which does work. Instead of the content_for I
> pass a rendered collection into _sublayout as a local variable named
> content.
>
> 4)
> layout.html.erb
> <html>
> <head>head stuff</head>
> <body>
> some stuff
> <%= yield %>
> some stuff
> </body>
> </html>
>
> index.html.erb
> <%= render :partial =>"sublayout", :locals => { :content =>
> (render :partial => "item", :collection => @items) } -%>
>
> _sublayout.html.erb
> some stuff
> <%= content %>
> some stuff
>
> _item.html.erb
> <%= h item.name %>
>
> On Oct 1, 1:04 pm, Garrett Berneche <[EMAIL PROTECTED]>
> wrote:
>
> > I have a nice layout for my app, but for some actions I want to use a
> > shared sub layout. Anyone have ideas what the best practice would
> > be? I have a method that works, but I am not sure if it is the 'rails
> > way' of doing things, anyone care to critique it? I have tried the
> > following...
>
> > 1) making my action template call
> > render :partial, :collection, :layout. The good new here is that it
> > wraps the layout around the whole collection (not around each item in
> > the collection) and doesn't blow away my main layout. The bad news is
> > the sub-layout and collection are repeated as many times as there are
> > items in the collection. This seems like a rails bug. The layout
> > should be applied once around the whole collection, or once for each
> > item in the collection, not both.
>
> > 2) applying a layout to the render :action in the controller. This
> > blows away my main layout. This is because i am rendering a template,
> > not a partial, right?
>
> > 3) using content_for to define a sub-layout. this works, but I feel
> > like there should be an easier way. i am also not sure yet what would
> > happen when i don't want a sub-layout. I guess I could make a
> > _no_sub_layout.html.erb that just yields, or put the content all
> > inside of the content_for block...I have a few other ideas too. One
> > possible benefit is that I think you could keep nesting sub-layouts
> > pretty easily if you wanted. Here is a simplified version of this
> > solution.
>
> > layout.html.erb
> > <html>
> > <head>head stuff</head>
> > <body>
> > some stuff
> > <%= yield :sublayout %>
> > some stuff
> > </body>
> > </html>
>
> > index.html.erb
> > <% content_for :sublayout do -%>
> > <%= render :partial =>"sublayout" %>
> > <% end -%>
>
> > <% for item in @collection do -%>
> > <%= render :partial => "item" -%>
> > <% end -%>
>
> > _sublayout.html.erb
> > some stuff
> > <%= yield %>
> > some stuff
>
> > _item.html.erb
> > <%= h item.name %>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby
on Rails: Talk" 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-talk?hl=en
-~----------~----~----~----~------~----~------~--~---