我正在使用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 即可。有没有解决方案。
答案 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)