dan*_*129 4 ruby-on-rails ruby-on-rails-3
我正在编写一个 Rails 应用程序,用户可以在谷歌地图上生成标记,然后可以选择将它们下载为 .kml 文件。问题是,我添加了一个功能,可以将地图更改为他们在向地图添加特定标记时可以看到的位置(有间隔)。我想使用与之前下载 .kml 文件相同的表单,但还添加一个额外的提交按钮,该按钮不会执行任何操作,只会运行一些控制器逻辑。我原来有:
<%= form_tag customMapGenerate_path(@device, :format => 'kml'), :method => :get do %>
Run Code Online (Sandbox Code Playgroud)
对于我的 form_tag
如何修改我的两个提交链接:
<%= submit_tag 'Download KML' %>
<%= submit_tag 'Display on map' %>
Run Code Online (Sandbox Code Playgroud)
对于以下两种情况,渲染 KML,然后不渲染任何内容(并停留在页面上):
if(params[:commit] == "Download KML")
respond_to do |format|
format.kml
end
return
elsif(params[:commit] == "Display on map")
//simple ruby code
return
end
Run Code Online (Sandbox Code Playgroud)
小智 5
您可以使用button_tag
从 中删除格式form_tag,它应该给你这样的东西
<%= 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 %>
Run Code Online (Sandbox Code Playgroud)
然后在您的控制器中,您只需使用respond_to do |format|来区分两种类型的响应。