Rails 2.3.8 + will_paginate 2.3.14
我有 Product 和 ProductReview 模型。
产品
has_many :product_reviews, :dependent => :destroy
named_scope :most_recently_reviewed, :order => 'product_reviews.created_at desc', :include => [:product_reviews]
产品审核
belongs_to :product, :counter_cache => true
运行带和不带分页的最基本查询会以完全不同的顺序返回项目。
Product.most_recently_reviewed.collect{|p| p.id }[0,9]
=> [1660, 1658, 2374, 578, 1595, 135, 531, 550, 1511]
Product.most_recently_reviewed.paginate(:page => 1, :per_page => 40).collect{|p| p.id }[0,9]
=> [1660, 2374, 578, 1711, 1855, 1730, 1668, 1654, 2198]
将 per_page 扩展为大于产品数量的数字会导致分页返回正确的结果:
Product.most_recently_reviewed.paginate(:page => 1, :per_page => 1000).collect{|p| p.id }[0,9]
=> [1660, 1658, 2374, 578, 1595, 135, 531, 550, 1511]
有什么建议么?谢谢。