1

コメントへの直接リンクを作成できるように、コメントがどのページにあるかを計算する必要があります。monogidでカミナリページネーションを使用しています。kaminari の wikiには、activerecord でそれを行う方法に関する解決策がありますが、それを mongoid に変換する最良の方法はわかりません。

4

2 に答える 2

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

お役に立てれば。

于 2013-01-17T10:00:42.070 に答える
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
于 2013-01-30T07:31:49.713 に答える