Ticket #292 (closed enhancement: fixed)

Opened 1 year ago

Last modified 1 year ago

Rendering partials with a collection or an object

Reported by: j.naga..@gmail.com Assigned to:
Priority: medium Milestone: The Future
Component: Merb Keywords:
Cc:

Description

Allow rendering of a partial, passing in a collection of objects, or a single object, to be assigned to locals in the partial.

The default local name is the name of the partial. ie. _person.html.erb, the local will be 'person'. Local can be overridden.

partial('person', :person => @person, :other_local => 'Hello World!') # Current method
partial('person', :with => @people, :locals => { :other_local => 'Hello World!' }) # Using a collection
partial('person', :object => @person, :locals => { :other_local => 'Hello World!' }) # Single object
partial('things', :with => @people, :as => :person) # Overriding the default local

Patch attached. Specs all pass.

Attachments

collect_and_object_partials.diff (5.0 kB) - added by j.naga..@gmail.com on 11/11/07 19:02:14.
collect_and_object_partials_2.diff (4.9 kB) - added by j.naga..@gmail.com on 11/11/07 19:04:51.
Slightly updated
collect_and_object_partials_3.diff (4.7 kB) - added by j.naga..@gmail.com on 11/11/07 21:04:51.
collect_and_object_partials_4.diff (6.3 kB) - added by j.naga..@gmail.com on 11/11/07 21:43:15.
collect_and_object_partials_5.diff (6.0 kB) - added by j.naga..@gmail.com on 11/11/07 21:46:51.

Change History

11/11/07 19:02:14 changed by j.naga..@gmail.com

  • attachment collect_and_object_partials.diff added.

11/11/07 19:04:51 changed by j.naga..@gmail.com

  • attachment collect_and_object_partials_2.diff added.

Slightly updated

11/11/07 21:04:51 changed by j.naga..@gmail.com

  • attachment collect_and_object_partials_3.diff added.

11/11/07 21:43:15 changed by j.naga..@gmail.com

  • attachment collect_and_object_partials_4.diff added.

11/11/07 21:46:51 changed by j.naga..@gmail.com

  • attachment collect_and_object_partials_5.diff added.

11/11/07 21:55:39 changed by j.naga..@gmail.com

Syntax for specifying locals has been changed to be inline with normal partial('..') method.

ie. :locals => { } is no longer necessary.

The :object => @object syntax has also been dropped, you can simply use :with => @collection or :with => @object

partial('person', :person => @person, :title => 'Person')
partial('person', :with => @people, :title => 'Person')
partial('person', :with => @person, :title => 'Person')

11/11/07 21:58:06 changed by j.naga..@gmail.com

Also note that:

<%= partial('person', :with => @people) %>

is considerably faster then

<% @people.each do |person| -%>
  <%= partial('person', :person => person %>
<% end -%>

11/11/07 22:07:09 changed by iv..@gweezlebur.com

  • status changed from new to closed.
  • resolution set to fixed.

(In [958]) Rendering partials with a collection or an object / Closes #292 / Thanks nagash

11/11/07 22:08:00 changed by iv..@gweezlebur.com

(In [959]) Missing spec files for [958] / Refs #292