Ruby on rails Rails中的文件URL
我的控制器中有一个操作:Ruby on rails Rails中的文件URL,ruby-on-rails,ruby,ruby-on-rails-3,ruby-on-rails-3.2,Ruby On Rails,Ruby,Ruby On Rails 3,Ruby On Rails 3.2,我的控制器中有一个操作: 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:
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
有没有一种方法可以生成这样的URL
http://site.org/path/to/file/file.mp4
而不是http://site.org/film_files/1004/download
?检查中的示例
您需要添加新路线:
routes.rb
match "/film_files/:id/:basename.:extension", :controller => "films", :action => "download", :conditions => { :method => :get }
然后假设您的文件名是:basename.:extension
,您只需要使用film\u文件的id和文档的文件名在视图中生成路由
例如:
这样生成的url将同时具有文件名和扩展名
= link_to "Download !", "/film_files/#{@film.id}/#{File.basename(@film.document.url)}"