will_paginate搜索结果?

时间:2016-05-20 11:27:24

标签: ruby-on-rails ajax will-paginate

我正在使用will_paginate gem来对我的应用程序进行分页。我已使用以下代码创建了搜索操作。

控制器

def index
     @transactions = Transaction.all.paginate(:page => params[:page], :per_page => 10)
end

def search
    @transactions = Transaction.paginate(:page => params[:page], :per_page => 10).where(:created_at => params[:from_date].to_datetime..(params[:to_date].to_datetime + 1.day))
end

search.js.erb

$("#searchResult").replaceWith('<div id = "searchResult"><%=j render 'result' %></div>');

_result.thml.erb

<div>
<%= @transactions.each do |f| %>
......
......
<% end %>
</div>
<%= will_paginate @transactions %>

index.html.erb

<div id = "searchResult">
<%= render = "result"%>
<% end %>

pagination.js

$(function() {
  $(".pagination a").on('click', function(){
    $(".pagination").html("Page is loading...");
    $.getScript(this.href);
    return false;
  });
});

它以某种方式适用于索引操作,ajax方法适用于链接,但是当我点击最后一个或第一页链接时生成如 localhost:3000 / control?_ = 1463743428904&amp; page = 1 另外,当我点击搜索时,分页链接会像链接一样 localhost:3000 / control / search?from_date = 2016-05-18&amp; page = 2&amp; to_date = 2016-05-20&amp; utf8 =%E2%9C%93 应该像本地主机:3000 /控制页= 1 即可。有没有解决方案。

1 个答案:

答案 0 :(得分:0)

您需要定义:

self.per_page = 10

在您尝试分页的模型中

您也可以尝试这样的搜索方法:

@transactions = Transaction.where(:created_at => params[:from_date].to_datetime..(params[:to_date].to_datetime + 1.day)).paginate(:page => params[:page], :per_page => 10)