2

我觉得我在这里错过了一些非常简单的东西......

我有一些文件要从我的应用程序的公共文件夹中下载。为了正确处理它,我做了这样的课程:

class UpdatesController < ApplicationController
  def download teste
    if params[:filename]
      file_path = "#{Rails.public_path}/download/#{params[:filename]}"
      send_file file_path, :filename => "#{params[:filename]}", :disposition => 'attachment'
    end
  end
end

现在,我的 routes.rb 看起来像:

match "updates/download/:filename" => "updates#download", :as => :getupdate

我像这样链接文件:

<%= link_to "Download this thing", getupdate_url(:filename => entry.file_name) , :class => "btn btn-mini" %>

好吧,url生成正确,我被重定向到正确的地址:

http://localhost:3000/updates/download/test.zip

我收到以下消息:

No route matches [GET] "/updates/download/test.zip"

在我的控制台中,我输入rake routes并得到了这个:

$ rake routes
getupdate        /updates/download/:filename(.:format) updates#download

该文件位于以下路径中:

.../myapp/public/download/test.zip

这里有什么问题!?

4

2 回答 2

0

感谢Rajarshi Das

由于点而发生错误!

我改变了 routes.rb 来做到这一点:

match "updates/download(/:filename)" => "updates#download", :as => :getupdate, :constraints => { :filename => /[^\/]+/ }

我真的很感激!我花了很多时间在这上面!

于 2013-08-27T09:48:21.430 回答
0

你能不能试试http://localhost:3000/updates/download/test……http://localhost:3000/updates/download/test.zip让我知道……谢谢

于 2013-08-27T09:49:44.287 回答