Ruby on rails rails excel mime类型-如何更改默认文件名?
我跟着火车走 并在我的Rails应用程序中设置Excel下载 我的控制器代码如下所示:Ruby on rails rails excel mime类型-如何更改默认文件名?,ruby-on-rails,mime-types,railscasts,Ruby On Rails,Mime Types,Railscasts,我跟着火车走 并在我的Rails应用程序中设置Excel下载 我的控制器代码如下所示: def show @project = Project.find(params[:id]) @project.tasks.order(:name) respond_to do |format| format.html format.json { render json: @project } format.xls end end .
def show
@project = Project.find(params[:id])
@project.tasks.order(:name)
respond_to do |format|
format.html
format.json { render json: @project }
format.xls
end
end
.dl_xls= link_to "Download xls", url_for(:format => 'xls')
在我看来,我创建了下载excel文件的链接,如下所示:
def show
@project = Project.find(params[:id])
@project.tasks.order(:name)
respond_to do |format|
format.html
format.json { render json: @project }
format.xls
end
end
.dl_xls= link_to "Download xls", url_for(:format => 'xls')
现在,生成的excel文件的命名总是与项目的id
记录类似,例如80.xls
有没有办法改变这种行为并给它一个自定义名称
谢谢..我希望您实际看到的是视图sans.erb的名称,而不一定是控制器操作 如果你想要达到这样的控制水平,你可以做三件事
- 使用控制器中的send_data调用,使用tab分隔的数据,如带有filename:选项的rails cast中所示
class ProductsController
这种方法以及railscast引入的旧Proprity spreadsheetML语言都存在问题,但如果您的用户群锁定在MS-OFFICE中,我认为没有人会注意到
- 或者,您可以使用类似于使用axlsx gem的acts_as_xlsx或axlsx_导轨的gem。这些工具生成经过验证的xlsx数据(也称为Office Open XML/ECMA-376,或MS自Office 2007以来一直在使用的数据…),并与其他现代电子表格软件(如数字、谷歌文档、LibraOffice)具有相当好的互操作性。我相信你在railscast上注意到了所有与此相关的评论
- 编写自己的响应器/渲染器
我相信你的答案是: 使用标题设置文件名
headers["Content-Disposition"] = "attachment; filename=\"#{filename}\""
此链接感谢您的回答,但我不想使用发送数据的路径。我刚刚将上面引用的行添加到我的format.xls{…}中,它使用指定的文件名。这适用于任何类型的呈现可下载文件。伟大的我想补充一点,文件名也应该包括扩展名(.xls)谢谢,你节省了我的时间。