【发布时间】:2013-05-05 06:44:26
【问题描述】:
我正在对数组进行分页@items
这是相关的控制器部分
class StaticPagesController < ApplicationController
def home
if signed_in?
@post = current_user.microposts.build
@activities = PublicActivity::Activity.order("created_at desc").paginate(page: params[:page])
@feed_items = current_user.feed.paginate(page: params[:page])
@items = (@feed_items + @activities)
@items.sort_by! {|item| -item.created_at.to_i}
@items = @items.paginate(:page => 1, :per_page => 10)
else
redirect_to '/signin'
end
end
基本上,这是我正在使用的线路。
@items = @items.paginate(:page => 1, :per_page => 10)
我也尝试将其更改为下面的代码,但没有奏效。
@items = @items.paginate(page: params[:page], :per_page => 10)
内部initializers\will_paginate_array_fix.rb
我有这条线
require 'will_paginate/array'
在我看来,我正在使用这个
<%= render partial: 'shared/item', collection: @items %>
<%= will_paginate @items %>
第一页似乎可以正常工作,但是当我单击第 2 页或第 3 页或其他页面时,我得到一个空白。它是空的。有谁知道我该如何解决这个问题?
【问题讨论】:
-
我试过你在这行
@items = @items.paginate(:page => params[:page].to_i, :per_page => 10)中提到的,但这给了我一个RangeError in StaticPagesController#homeinvalid page: 0错误 -
我试过这个
@items = @items.paginate(:page => params[:page].to_i ||= 2, :per_page => 10),但我得到了同样的错误 -
我明白了。我更新到这个
params[:page] ||= '2',然后在下面那个@items = @items.paginate(:page => params[:page].to_i, :per_page => 10)。发生的事情是,当我打开页面时,它会自动转到分页的第二页并且可以正常工作。但是,转到第1页后,再次点击2,它显示为null -
此外,当我使用您的代码时,它会自动转到 www.mydomain.com(无页面参考)并显示第二个分页页面。似乎
www.mydomain.com/?page=1有效,但www.mydomain.com/?page=2显示为空白。
标签: ruby-on-rails ruby arrays will-paginate