Putting a page within a page

You had it.

<%= render :partial=>"login" %> is the way to go. Keep in mind when
rendering partials you file needs to be caled _login.rhtml not
login.rhml.

an other way would be using frames, but the kind a hacky solution - and
I don't recomend it. I've done the same thing as you want by using
partials.

the following is from wiki.rubyonrails.com:

Sharing partial templates between controllers

A partial template is normally placed in the same view directory as the
template it's called from. To use the partial in a template in a
different directory, use the full path to that directory (from the
views directory).

For example, consider a template called _author_summary.rhtml which
exists in the directory, views/author. Now, you may also want to show
an author summary from, say, a blog page. In the blog template (which
is saved in /views/blog), use this:

<%= render :partial => 'author/author_summary' %>

Notice that you don't put the initial underscore that actually exists
on the name of the template.