Ruby on rails 会否;filterReference:未定义的方法`总页数';对于#<;阵列:0x007f9f6b4a3320>;
我正试着结合使用。但我得到了以下错误: #数组的未定义方法“总#页数”:0x007f9f6b4a3320> 我的控制器操作:Ruby on rails 会否;filterReference:未定义的方法`总页数';对于#<;阵列:0x007f9f6b4a3320>;,ruby-on-rails,will-paginate,filterrific,Ruby On Rails,Will Paginate,Filterrific,我正试着结合使用。但我得到了以下错误: #数组的未定义方法“总#页数”:0x007f9f6b4a3320> 我的控制器操作: def index @filterrific = initialize_filterrific( current_user.assessments, params[:filterrific], :select_options => { sorted_by: Assessment.options_for_
def index
@filterrific = initialize_filterrific(
current_user.assessments,
params[:filterrific],
:select_options => {
sorted_by: Assessment.options_for_sorted_by },
:persistence_id => false,
) or return
@assessments = @filterrific.find.page(params[:page]).paginate(page: params[:page], per_page: 10).sort_by &:created_at
@assessments.reverse!
end
视图:
部分:
<div id="filterrific_results">
<% @assessments.each do |assessment| %>
....
<% end %>
</div>
<%= will_paginate assessments %>
....
我哪里做错了 避免通过过度分页的集合调用sort\u。将范围添加到评估并指定filterrific的范围
asessment.rb
class Assessment < ActiveRecord::Base
filterrific(
available_filters: [
:oldest_first
]
)
scope :oldest_first, lambda { order('created_at ASC') }
asessment.rb
班级评估
问题在于,您正在使用以下两种方法将ActiveRecord集合代理强制转换为数组:
。按排序
.reverse
.order('created_at DESC')
您还将调用分页方法两次:
.page
和.paginate
。一次就足够了。这是因为您同时调用了“.page”和“.paginate”。我同意下面的代码。我知道你已经解决了这个问题,因为这个问题是在过去两年发布的,但我只是将我的经验分享给我的朋友,他将在以后面对这个问题
@filterrific.find.page(params[:page]).per_page(10)
尝试向config/initilizers添加一个新文件,并添加此行
require'will\u paginate/array'
@filterrific.find.page(params[:page]).per_page(10)