【问题标题】:rails two buttons in a search form在搜索表单中添加两个按钮
【发布时间】:2013-08-16 14:42:55
【问题描述】:

我的索引页中有一个 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

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

我在这里错过了什么?

【问题讨论】:

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


    【解决方案1】:
    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 %>
    

    【讨论】:

      【解决方案2】:

      让它工作

           <%= 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
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-02-07
        • 2013-12-05
        • 1970-01-01
        相关资源
        最近更新 更多