2014-07-07 46 views
1

我有我的控制器動作:文件URL

def download 
    @file = FilmFile.find(params[:film_file_id]) 
    @file.film.downloads += 1 
    @file.film.save 
    send_file @file.real_name.path, content_type: @file.real_name.content_type, x_sendfile: true 
end 

,但在Chrome下載我看到的網址文件,如http://site.org/film_files/1004/download

有沒有一種方法,使這樣的http://site.org/path/to/file/file.mp4的網址,而不是http://site.org/film_files/1004/download

回答

1

檢出CarrierWave wiki中的示例。

您需要添加一個新的路由:

的routes.rb

match "/film_files/:id/:basename.:extension", :controller => "films", :action => "download", :conditions => { :method => :get } 

再假設你的文件的文件名是:basename.:extension你只需要使用來生成您的看法路線ID的film_file和文件名的文件

例如:

= link_to "Download !", "/film_files/#{@film.id}/#{File.basename(@film.document.url)}" 

因此,生成的網址將同時具有文件名和擴展名!

+1

很酷,謝謝! :) – Art