我正在尝试下载文件而不是在浏览器中打开它们 - 文件类型可能不同 - 到目前为止我有以下设置 - 它什么都不做
观看
<td><%= link_to "Download", download_file_path(resume) %></td>
在控制器中
def download_file(file_path)
mime = MIME::Types.type_for(file).first.content_type
send_file(file_path, :type => mime, :disposition => "attachment")
end
路线
get 'profiles/download_file' => 'profiles#download_file' , as: :download_file
这些设置无效,页面只刷新 - 仅供参考:我正在使用carrierwave作为附件
更新:日志显示在控制台
中在2016-07-18开始获取127.0.0.1的GET“/profiles/download_file.2” 19:25:23 +0500由ProfilesController处理#show as参数: { “ID”=&gt; “中download_file”}
答案 0 :(得分:1)
您的路线不允许下载记录的标识符。
get 'profiles/:id/download_file' => 'profiles#download_file' , as: :download_file
虽然这应该是资源路由上的成员操作。
你也不想在控制器方法上有参数,你需要从参数中提取id:
def download_file
file = Resume.find(params[:id])
...
end