这是我的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
发布/获取问题。
有什么建议吗?
答案 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();
});
});
如果这可以解决您的问题,或者它不是您想要的,请告诉我们。
希望它有所帮助,玩得开心!