使用kaminari和mongoid计算模型的页面

时间:2013-01-17 04:56:18

标签: pagination mongoid kaminari mongoid3

我需要计算评论的页面,以便我可以创建一个直接链接。我正在kaminari使用monogid分页。在kaminari's wiki,他们有一个关于如何使用activerecord进行解决的解决方案,但我不确定将其转换为mongoid的最佳方法。

2 个答案:

答案 0 :(得分:0)

如果您使用的是Mongoid 3,此方法可以完成这项工作:

class User
  include Mongoid::Document

  ...

  def page_num(options = {})
    field = options[:by] || :_id
    order = options[:order] || :asc
    per   = options[:per] || self.class.default_per_page

    operator = (order == :asc) ? field.to_sym.lte : field.to_sym.gte
    (self.class.where(operator => read_attribute(field)).order_by("#{field} #{order}").count.to_f / per).ceil
  end

  ...
end

希望这有帮助。

答案 1 :(得分:0)

这是我最终提出的一个精简版本。

def page_num
  number_before = self.class.where(recipe_id: recipe.id).gte(created_at: created_at).count.to_f
  number_on_page = self.class.default_per_page
  (number_before / number_on_page).ceil
end