Lighthouse has a new layout. Prefer the old one? Return to the old layout, and switch back any time from the link at the top of each page.

This project is archived and is in readonly mode.

Add :spacer option to render

#830

Currently the "render" method allows you to pass a :spacer_template to render a partial between each item in the collection.


<%= render :partial => @items, :spacer_template => 'item_divider' %>

This is good for complex spacers, but sometimes you have a very simple spacer. Like ", " or "<hr />". For these cases, it seems silly to make an external partial which just has this tiny fragment. Even the name of the partial is longer than the contents.

This patch adds a :spacer option which will just take a string.


<%= render :partial => @items, :spacer => "<hr />" %>

You can get that HTML out of the string with the tag method.


<%= render :partial => @items, :spacer => tag(:hr) %>

Much prettier.

Reported by Ryan Bates · August 14th, 2008 @ 05:15 PM

State: wontfix
Milestone: 2.x
Assigned to: nobody
Importance: Low

Activity

  1. Pratik
    Pratik
    • State changed from new to wontfix

    I think spacer templates might be better served as a plugin. Very few people actually use them. We might as well remove it from core if the plugin becomes defacto implementation.

    Thanks.

    August 21st, 2008 @ 03:33 PM

  2. Ryan Bates
    Ryan Bates

    I agree many people don't use spacer_template, but I would certainly use this :spacer option more. I need this behavior in almost every project but find other work-arounds because a spacer template just feels so ugly.

    I'm willing to make a plugin with this behavior, but I don't see how it would be possible without re-implementing the entire "render_partial_collection" method. That isn't a good solution.

    Any ideas?

    August 21st, 2008 @ 07:03 PM

  3. Jeremy Weiskotten
    Jeremy Weiskotten

    @Ryan, I think it would be a good addition to the better_partials plugin. There are some other good ideas in there.

    http://www.railsjedi.com/posts/2...

    August 21st, 2008 @ 08:25 PM

  4. Ryan Bates
    Ryan Bates

    The better_partials plugin is just a wrapper around "render", so it faces the same problem. There's no way to add a spacer as a string without re-implementing the render_partial_collection method.

    August 21st, 2008 @ 09:02 PM

  5. Ryan Bates
    Ryan Bates

    I added ticket #881 Refactoring ActionView::Partials which does some refactoring to ActionView::Partials. Then it will be easier for plugins to override render_partial_collection and support more options.

    This also makes it easier to remove the spacer_template option if you ever decide to in the future.

    August 22nd, 2008 @ 01:02 AM

  6. Jon Kneller
    Jon Kneller

    I was just trying to find such a feature, and came across this ticket. Would have been really nice if Rails supported this.

    April 9th, 2009 @ 10:59 PM

  7. Jeff Kreeftmeijer
    Jeff Kreeftmeijer
    • Tag cleared.
    • Importance changed from to Low

    Automatic cleanup of spam.

    November 4th, 2010 @ 07:14 AM

  8. Jeff Kreeftmeijer
  9. Jeff Kreeftmeijer
  10. Jeff Kreeftmeijer
  11. Jeff Kreeftmeijer