我的用户可以生成某些数据的报告,并决定他们想要的格式。
他们可以选择HTML,CSV或XLS
这是表格(省略了数据,这只是格式选择器)
<%= form_tag "/report", :method => :get %>
Format <select id='format' name='format'>
<option value='html' selected='selected'>View in browser (HTML)</option>
<option value='csv'>Export to CSV file</option>
<option value='xls'>Export to exel (XLS)</option>
</select>
<%= submit_tag "Make report", :class => 'submit' %>
此表单适用于此操作
def report
#...Again omitting data stuff
respond_to do |format|
format.html
format.csv
format.xls
end
end
我有相应的视图文件。
赞report.xls.erb
在我的日志中,我得到了
Processing by ..Controller#report as XLS
但是,浏览器下载没有扩展名的文件。
如果我将form_tag行更改为此。
<%= form_tag "/report.xls", :method => :get %>
该文件获得.xls扩展名。
我已经设置了xls mime_types
如何在表单中设置格式?
答案 0 :(得分:6)
这来自不同的question。
您可以设置标题以告知文件的浏览器名称。
format.xls do
response.headers['Content-Disposition'] = 'attachment; filename="' + filename + '.xls"'
render "report.xls.erb"
end