1

我有以下代码PARAMS [:页面]为零

# Gemfile 

gem 'will_paginate' 


# /config/initializers/will_paginate_array.rb 

require 'will_paginate/collection' 

Array.class_eval do 
    def paginate(page = 1, per_page = 15) 
    WillPaginate::Collection.create(page, per_page, size) do |pager| 
     pager.replace self[pager.offset, pager.per_page].to_a 
    end 
    end 
end 


# /app/controllers/games_controller.rb 

def show 
    @presenter = GamesPresenter.new(json) 
    @games = @presenter.games.paginate(params[:page], 5) 
end 


# /app/views/games/index.html.erb 

<% @games.each do |game| %> 
    ... 
<% end %> 

<%= will_paginate @games %> 
然而

当我试图通过PARAMS [:页面]在line @games = @presenter.games.paginate(params[:page], 5)我得到params[:page]是零。有谁知道为什么会出现这种情况? 。如果添加page = 1,如果page.blank?只给我第一页结果..请提出任何建议?

回答

3

params[:page]默认为nil。我建议你改变你的class_eval当你通过nil作为第一个参数,它不会使用1,因为你明确地传递一个值处理这种情况下,以

def paginate(page = 1, per_page = 15) 
    page ||= 1 
    WillPaginate::Collection.create(page, per_page, size) do |pager| 
    pager.replace self[pager.offset, pager.per_page].to_a 
    end 
end 

+0

谢谢你的回复...但同样它只是给我的第一个结果集的和不断变化的页面只是拆分这些结果。 {例如,在我的情况下,我只获得了前100个结果,其余的都不会来}。你知道为什么吗? – 2013-03-12 15:17:25

+0

我可以问你想达到什么吗?你想分页阵列(基于初始化文件的文件名) – jvnill 2013-03-12 15:19:58

+0

耶一样的...所以我不知道为什么我只得到第一个100分的结果通过搜索......但没有will_paginate我得到的更多。 。 – 2013-03-12 15:23:35

相关问题