12

私はこのテンプレートを持っています:

# app/views/posts/index.rabl
collection @posts => :posts
attributes :id, :title, :subject
child(:user) { attributes :full_name }
node(:read) { |post| post.read_by?(@user) }

魔女が戻る:

{
    "posts": [
        {
            "post": {
                "id": 5,
                "title": "...",
                "subject": "...",
                "user": {
                    "full_name": "..."
                },
                "read": true
            }
        }
    ]
}

そして、これをレンダリングするために、いくつかのページネーションパラメータを追加するために追加したいと思います:

{
    "posts": [
        {
            "post": {
                "id": 5,
                "title": "...",
                "subject": "...",
                "user": {
                    "full_name": "..."
                },
                "read": true
            }
        }
    ],
    "total": 42,
    "total_pages": 12
}

何か案は?どうもありがとう!

4

4 に答える 4

16

初心者の質問で申し訳ありませんが、README で回答されています。ページネーションの例を次に示します。

object false

node(:total) {|m| @posts.total_count }
node(:total_pages) {|m| @posts.num_pages }

child(@posts) do
  extends "api/v1/posts/show"
end

注:Kaminariページネーションに使用しています。

于 2012-02-17T10:06:02.690 に答える
1

will_paginate 3.0.0 の場合、次のように動作することに注意してください。

node(:total) {|m| @posts.total_entries }
node(:total_pages) {|m| (@posts.total_entries.to_f / @posts.per_page).ceil }
node(:page_num){|m| @posts.current_page}
于 2012-08-21T12:15:58.630 に答える
0

これはあなたが探しているものかもしれません;)

object false
node :comments do
  partial('posts/index', object: @posts)
end

node(:pagination) do
  {
    total:@posts.count,
    total_pages: 20
  }
end
于 2013-06-20T20:01:18.950 に答える