在搜索表单中导出两个按钮

时间:2013-08-16 14:42:56

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

我的索引页面中有一个form_tag,用于对我的模型执行搜索。

 <%= form_tag( :method => "get", :class => "form-inline") do %>

在表单中,我有两个提交按钮,应该指向两个不同的操作(显示搜索结果的两个不同视图。

  <div class="btn-group">
       <%= submit_tag("View1", :class => 'btn btn btn-success', :name => 'view1') %>
  </div>
  <div class="btn-group">
       <%= submit_tag("View2", :class => 'btn btn btn-primary', :name => 'view2') %>
  </div>

单击view1提交时,我希望它指向view1操作并加载与视图2相同的页面。

所以在我的控制器中我做了以下事情:

  def index
    if params[:view1]
          render :action => 'view1'
      elsif params[:view2]
          render :action => 'view2'
      end
      respond_to do |format|
        format.html #{ render :layout => false }# index.html.erb        
      end
  end

但是当我提交表单时,它显然会重定向到保存操作。构建的网址为http://0.0.0.0:3000/posts?class=form-inline&method=get,而不是http://0.0.0.0:3000/view1?utf8=%E2%9C%93.....

我在这里缺少什么?

2 个答案:

答案 0 :(得分:0)

def index
if params[:view1]
 @action = '/some/url'
else
  @action = '/some/url'
end

end

更改表单中的网址

<%= form_for('',url: view1) do |f| %>
--- fileds--
<%= submit_tag('conditional text') %>
<% end %>

答案 1 :(得分:0)

让这个工作

     <%= form_tag(root_path,  :method => "get", :class => "form-inline") do %>


   <%= submit_tag("view1", :class => 'btn btn btn-success', :name => 'view1') %>
   <%= submit_tag("view2", :class => 'btn btn btn-success', :name => 'view2') %>




if params[:view1]
     render :action => :view1


  elsif params[:view2]
     render :action => :view2
  end