rails多个提交按钮,用于显示和下载

时间:2013-08-30 12:01:51

标签: ruby-on-rails ruby-on-rails-3

我有以下形式

<%= form_tag url_for(:action => "clients_new") do %>
    <%= text_field_tag 'some_text' %>
    <%= text_field_tag 'soem_text' %>
    <%= submit_tag 'Search' %>
    <%= submit_tag 'Download xls' %>
<% end %>

我需要以相同的形式为searchdownload制作相同的操作,我该怎么办呢。

我的控制器是

class ClientsController < ApplicationController
  respond_to :html, :xls

def clients_new
  blahblah
  if params[:clien]=='download'
  respond_to do |format|
   format.xls
  end
else
  respond_to do |format|
   format.html
  end
end
end
end

2 个答案:

答案 0 :(得分:0)

在同一表格中没有2个提交按钮。提交操作只会转到控制器的一种方法 您可以做的是,在搜索和下载之间可能有一个radio元素,然后在执行操作之前检查控制器上哪个选项处于活动状态。

答案 1 :(得分:0)

<%= form_tag url_for(:action => "clients_new") do %>
    <%= text_field_tag 'some_text' %>
    <%= text_field_tag 'soem_text' %>
<%if @form_type == 'search'%>
<%=hidden_tag :form_type, "search"%>
    <%= submit_tag 'Search' %>
<%else%>
    <%= submit_tag 'Download xls' %>
<%=hidden_tag :form_type, "download"%>
<%end%>
<% end %>

然后在控制器中

  def clients_new
      if params[:form_type] == "search"
    #do something
    else
    end
end