Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 会否;filterReference:未定义的方法`总页数';对于#<;阵列:0x007f9f6b4a3320>;_Ruby On Rails_Will Paginate_Filterrific - Fatal编程技术网

Ruby on rails 会否;filterReference:未定义的方法`总页数';对于#<;阵列: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_

我正试着结合使用。但我得到了以下错误:

#数组的未定义方法“总#页数”:0x007f9f6b4a3320>

我的控制器操作:

  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
确保使用ActiveRecord方法设置订单。这应该有效:
.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)