多数の 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"
エラーが表示されます: 引数の数が間違っています (1 に対して 0)
ただし、私の要求パラメーターは、使用したいものを渡しているようです: {"file_to_download"=>"property_site_views_07-12-2012.csv"}
ご協力いただきありがとうございます!!!