@Peter 's solution worked for me. Here is a code sample:
View:
<%= link_to 'download this page', object_path(@object, :download => true) %>
Controller:
def show
# ...
if params[:download]
send_data(render_to_string, :filename => "object.html", :type => "text/html")
else
# render normally
end
end