我有一个页面,用于通过使用提供的表单提交数据来搜索列表。表单参数通过 ajax(发布请求)提交,在搜索表中创建一个新记录,然后通过show
该记录的操作显示列表(动态地,在提交表单的同一页面上)。
结果有 kaminari 提供的分页链接,如下所示:
<%= paginate matches,
:params => {:controller => 'searches',
# I have to specify the id because my searches are stored in the database
:action => 'show', :id => search.id},
:remote => true %>
请注意,分页链接是动态包含在页面中的。因此,当我进行新搜索并获取新列表时,服务器会重新呈现分页链接。
这是我在搜索控制器中的显示操作
def show
@search = Search.includes(:rate).find(params[:id])
@matches = @search.matches.order(sort_column + " " + sort_direction).page(params[:page])
respond_to do |format|
format.html
format.xml { render :xml => @matches }
format.js
end
end
出于某种原因,我无法弄清楚,我在搜索表单中使用的所有参数(并且有很多参数)都附加到了 kaminari 分页 url,给了我这样的 href:
<a href="/searches/145?massive parameter list omitted" data-remote="true" rel="next">2</a>
省略的参数列表太长以至于不能成为有效的 GET 请求,并且我收到414
错误代码。
正如您从我上面的搜索 - > 显示操作中看到的那样,分页链接没有必要附加所有这些信息。他们所需要的只是路线、ID 和页码。
我该如何防止这种情况发生?
顺便说一句,我已经尝试:method => :post
在 kaminari 选项中进行设置。似乎没有帮助。我正在使用 kaminari v 0.12.4(最新)和 Rails 3.1.rc4。