Sub templates is an old feature of Rails that hasn't gotten much attention lately and should not be used in modern Rails applications. I looked into it this evening while working on my view chapter for The Rails Way, and got the answer straight from David and Koz. I don't know if the feature will be deprecated anytime soon, but rest assured you should be using render :partial => ...
instead.
Using sub templates allows you to sidestep tedious replication and extract
common display structures in shared templates. The classic example is the
use of a header and footer (even though the Action Pack-way would be to use
Layouts):
<%= render "shared/header" %>
Something really specific and terrific
<%= render "shared/footer" %>
As you see, we use the output embeddings for the render methods. The render
call itself will just return a string holding the result of the rendering.
The output embedding writes it to the current template.
But you don?t have to restrict yourself to static includes. Templates
can share variables amongst themselves by using instance variables defined
using the regular embedding tags. Like this:
<% @page_title = "A Wonderful Hello" %>
<%= render "shared/header" %>
Now the header can pick up on the @page_title variable and use it for
outputting a title tag:
<title><%= @page_title %></title>