我使用kaminari,并且错误。
的Gemfile:
# gem 'will_paginate', '~> 3.0.6'
# gem 'will_paginate-bootstrap'
gem 'kaminari'
lists_controller.rb
def index
if params[:tag]
@lists = List.tagged_with(params[:tag]).order(created_at: :desc).paginate(page:params[:page], per_page: 3 )
else
@lists = List.all.order(created_at: :desc)
end
end
我也是用户.page params[:page].per(2)
关注.order(created_at: :desc)
但没有工作
视图/列表/ index.html.erb
<%= paginate @lists %>
错误在这里
undefined method `total_pages' for #<List::ActiveRecord_Relation:0x007fa2303e3fa8>
Extracted source (around line #26):
</div>
</div>
<%= paginate @lists %>
<div class="container">
<div class="row">
<div class="col-md-8">
我不知道该怎么做,我是复制关于kaminari的railscast,视频很好,我有一个bug。 谢谢帮帮我。
答案 0 :(得分:7)
您需要对两个查询进行分页。我建议像:
def index
if params[:tag]
@lists = List.tagged_with(params[:tag])
else
@lists = List.all
end
@lists = @lists.order(created_at: :desc).paginate(page:params[:page], per_page: 3 )
end
当@lists
为零时,params[:tag]
将不会成为分页对象。
答案 1 :(得分:1)
尝试分页:
List.tagged_with(params[:tag]).order(created_at: :desc).page(params[:page]).per(3)
答案 2 :(得分:0)
我有一个类似的问题,这是因为commonrator gem从will_paginate引入了方法并覆盖了ActiveRecord基类。
page_entries_info方法的调用堆栈中出现错误,这似乎是两个库之间的通用方法名称。
要解决此问题,您可以使用以下方法明确引用该方法:
所以查看代码:
function validateFunction($input1, $input2) {
return $input1 ^ $input2;
}
和初始化程序(initializers / kaminari_config.rb)
<link href="bootstrap4-glyphicons/css/bootstrap-glyphicons.css" rel="stylesheet">
这是一个非常棘手的修复程序,但希望对您有所帮助。
答案 3 :(得分:-1)
尝试:
order(:nome).page page
为我工作