Для прокси файла через ваш контроллер вы можете использовать open-uri.
В среде. Rb
require 'open-uri'
В вашем контроллере
def download
send_data(open(params[:url]).read,
:filename => 'somefilename',
:disposition => 'attachment'
)
end
РЕДАКТИРОВАТЬ: Если вы не хотите, чтобы прокси файл, вы должны перенаправить на (URL). Если вы получаете сообщение о перенаправлении, вызванное дважды, имейте в виду, что вы не можете одновременно выполнять рендеринг и перенаправление из одного действия. Если вам нужно загрузить представление, а затем начать загрузку, используйте два действия:
def present_download
@download = Download.find(params[:id])
# implicitly calls render :action => :present_download
end
def download_file
@download = Download.find(params[:id])
respond_to do |format|
format.html { redirect_to(@download.url) }
end
end
И по вашему мнению (present_download.html.erb):
<html>
<head>
<meta http-equiv="refresh" content="1;url=<%= url_for :action => :download_file -%>" />
</head>
<body>
Your download will automatically start…
…