Rails根据下拉选择将参数附加到URL

时间:2016-07-17 17:40:01

标签: javascript ruby-on-rails

我有一个rails应用程序,在索引页面上我有一个下拉列表来选择页面上显示的记录数量,同时我还有一个搜索表单来过滤结果集。

我想将下拉选项附加到网址

e.g。当我搜索记录时,网址变为?utf8=✓&search=as&button=,但现在当用户将显示的记录数更改为per_page=10时(10是用户从下拉菜单中选择),网址应变为?utf8=✓&search=as&button=&per_page=10 < / p>

我尝试了以下代码,但是对于每个用户选择,per_page不断添加到网址,我的代码行是

<%= select_tag :per_page, 
               options_for_select([10,20,30], 
               params[:per_page].to_i), 
               :onchange => "if(this.value){window.location+='&per_page='+this.value;}" %>

1 个答案:

答案 0 :(得分:0)

您可以做的是将select包装到表单标记中并在onchange处理程序中提交表单。它看起来类似于以下内容(我假设您有orders_path路由可用,并希望保留params[:search]值:

<%= form_tag orders_path, :method => "get" do %>
  <%= hidden_field_tag :search, params[:search] %>
  <%= select_tag :per_page, options_for_select([10,20,30], params[:per_page].to_i), :onchange => "this.form.submit()" %>
<% end %>
相关问题