Ruby on rails 使用submit_标记声明格式

Ruby on rails 使用submit_标记声明格式,ruby-on-rails,ruby-on-rails-3,Ruby On Rails,Ruby On Rails 3,我正在编写一个rails应用程序,用户可以在谷歌地图上生成标记,然后可以选择将它们作为.kml文件下载。问题是,我正在添加一个功能,以将地图更改为他们在地图上添加特定标记时可以看到的位置,并设置间隔。我想使用与以前下载.kml文件相同的表单,但还添加了一个额外的提交按钮,该按钮除了运行一些控制器逻辑之外,什么都不做。我最初有: <%= form_tag customMapGenerate_path(@device, :format => 'kml'), :method =>

我正在编写一个rails应用程序,用户可以在谷歌地图上生成标记,然后可以选择将它们作为.kml文件下载。问题是,我正在添加一个功能,以将地图更改为他们在地图上添加特定标记时可以看到的位置,并设置间隔。我想使用与以前下载.kml文件相同的表单,但还添加了一个额外的提交按钮,该按钮除了运行一些控制器逻辑之外,什么都不做。我最初有:

<%= form_tag customMapGenerate_path(@device, :format => 'kml'),  :method => :get do %>

您可以在操作中设置响应标题以强制浏览器下载文件

response.headers['Content-Type'] = 'application/vnd.google-earth.kml+xml'
response.headers['Content-Disposition'] = 'attachment; filename=map.kml'

您可以使用
按钮\u标签

form_标签中删除该格式,它会给您类似的信息

<%= form_tag customMapGenerate_path(@device),  :method => :get do %>
 // your form here
 <%= button_tag 'Download KML', value: 'kml', name: 'format' %>
 <%= button_tag 'Display on map', value: 'html', name: 'format' %>
<% end %>
:get do%>
//你的表格在这里

然后在控制器中,您只需使用
respond_执行| format |
来区分两种类型的响应。

它在format字段中发送1,而不是html等
response.headers['Content-Type'] = 'application/vnd.google-earth.kml+xml'
response.headers['Content-Disposition'] = 'attachment; filename=map.kml'
<%= form_tag customMapGenerate_path(@device),  :method => :get do %>
 // your form here
 <%= button_tag 'Download KML', value: 'kml', name: 'format' %>
 <%= button_tag 'Display on map', value: 'html', name: 'format' %>
<% end %>