Когда вы 'send_file', это само по себе рендер. Таким образом, отображение страницы «успех» и отправка файла - это два отдельных рендера.
Я бы заставил страницу успеха и загрузить файл двумя отдельными действиями контроллера и отобразить ссылку на загрузку файла на странице успеха.
, например
def success
#show html page with file download link
end
def file_download
send_file #make sure you have :inline => false
end
Тогда вы можете использовать javascript, чтобы показать, что они рендерит оба одновременно.
В нижней части вашего success.erb поместите что-то подобное, чтобы автоматически вызывать диалоговое окно загрузки при рендеринге страницы успеха.
<script language="JavaScript">
window.location=<%=url_for :action=>"file_download", :id => 'etc' %>;
</script>