Iterating through a collection using partials


#1

This should be straightforward but a search hasn’t helped:

I want to convert this:
<% for post in @posts %>

<%= link_to "#{post.title}" %>
posted by <%= link_to "#{post.person.name}" %>

<%= h(post.body) %>

<% end %>

into THIS:

<% for post in @posts %>
<%= render :partial => ‘postblock’%
<% end %>

but just moving the PostBlock div into _postblock.rhtml gives an invalid
action for “post.” How can I cleanly separate this? I’ve also tried
using :collection => @posts but the documentation on :collection is very
poor. Thanks!


#2

It was a naming convention problem. Since the passed object is
automagically named the same thing as the partial, penaming the partial
to “_post.rhtml” works:

<%= render :partial => ‘post’, :collection => @posts %>

This information came from page 511 in AWDwRv2