我有一个包含一堆 csv 文件的文件夹,我想让用户下载他们需要的任何文件。唯一的问题是每天都会创建新文件,所以我不能只在文件名中硬编码。我想知道是否有可能以某种方式从视图传递参数到控制器以允许下载请求的文件,但我所做的似乎没有任何工作......
控制器:
def download_file(file_to_download)
send_file RAILS_ROOT + "/public/csv/" + file_to_download,
:type => 'text/csv; charset=iso-8859-1; header=present',
:disposition => "attachment; filename=#{file_to_download}",
:stream => true,
:buffer_size => 4096
end
意见:(使用haml)
%h1 Database Export
%h2 Date: #{Date.today}
%table
%tr
%td Click on a file to download
- @files = Dir.glob("public/csv/*.csv")
- for file in @files
- name = File.basename(file, '.csv')
%tr
%td= link_to name, :controller => "csv_exports", :action => "download_file", :file_to_download => name + ".csv"
我收到错误:参数数量错误(0 代表 1)
但是,我的请求参数似乎传递了我想要使用的内容: {"file_to_download"=>"property_site_views_07-12-2012.csv"}
谢谢你的帮助!!!