1

私は追加しました

# config/initializers/will_paginate_array_fix.rb
require 'will_paginate/array'

しかし、配列のページネーションのサポートがまだ得られていないようです。

def index
  @array = (1..100).to_a.paginate(params[:page])
end
# gives TypeError: can't convert Symbol into Integer

それはモデルでうまく動作し、私は得る

defined? WillPaginate # => constant
ActiveRecord::Base.respond_to? :paginate # => true
# but:
Array.respond_to? :paginate # => false

配列のページ付けサポートを取得するために何が欠けているか知っている人はいますか?

4

1 に答える 1

5

will_paginate/array のソースコードを見て答えを見つけました:

def paginate(options = {})
  page     = options[:page] || 1
  per_page = options[:per_page] || WillPaginate.per_page
  total    = options[:total_entries] || self.length

  WillPaginate::Collection.create(page, per_page, total) do |pager|
    pager.replace self[pager.offset, pager.per_page].to_a
  end
end

そのため、配列の場合は (.page ではなく) .paginate を使用する必要があり、それをハッシュとして渡す必要があります。したがって、次のように動作します。

def index
  @array = (1..100).to_a.paginate(page: params[:page])
end
于 2012-06-29T03:46:52.507 に答える