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.