send_file链接不能正常工作Ruby on Rails

时间:2016-07-18 13:56:40

标签: ruby-on-rails ruby-on-rails-4 carrierwave

我正在尝试下载文件而不是在浏览器中打开它们 - 文件类型可能不同 - 到目前为止我有以下设置 - 它什么都不做

观看

 <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”}

1 个答案:

答案 0 :(得分:1)

您的路线不允许下载记录的标识符。

get 'profiles/:id/download_file'          => 'profiles#download_file' , as: :download_file

虽然这应该是资源路由上的成员操作。

你也不想在控制器方法上有参数,你需要从参数中提取id:

def download_file
  file = Resume.find(params[:id])
  ...
end