使用搜索搜索时,rails kaminari分页不适当的链接

时间:2013-07-28 14:55:30

标签: ruby-on-rails pagination kaminari

这是我的route.rb:

match "search" => "welcome#search" , via: [:get, :post]

这是我在欢迎控制器中的搜索方法:

def search
    @search = Poem.search(params[:q])
    @poems = @search.result(distinct: true).page(params[:page]).per(15)
  end

这是我的搜索视图:

<%= search_form_for @search, url: search_path , html: { method: :post }  do |f| %>
  <%= f.label :content_cont %>
  <%= f.text_field :content_cont %>
  <%= f.submit %>
<% end %>

<%= render :partial => 'show' %>

这是我的节目部分:

<%= paginate @poems%>
.... ( other stuff)

我正在使用ransack执行高级搜索它确实有效,但分页链接是这样的:

http://0.0.0.0:8080/search?authenticity_token=oiOmBeY80DH0zAN5lST%2BCo355phcr3TGqOSlTQ1qtlc%3D&commit=Search&page=2&q%5Bcontent_cont%5D=&utf8=%E2%9C%93

发布/获取问题。

有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我知道这已经晚了2年,但这个其他解决方案对我有用,我只是在这里交叉发布:

https://github.com/amatsuda/kaminari/issues/182#issuecomment-122124373

  

我找到了一种方法,只是基本上做一个帖子,将分页链接的值附加为表单的输入字段,这样就可以避免在地址栏中使用url params并且还可能阻止HTTP 414错误。

$(function() {
  $('.pagination a').on('click', function(e){
    e.preventDefault();
    e.stopImmediatePropagation()
    $('form').append("<input type='text' name='page' value=" + e.target().text() + "/>");
    $('form').submit();
  });
});
  

如果这可以解决您的问题,或者它不是您想要的,请告诉我们。

     

希望它有所帮助,玩得开心!