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)}"