1

我想在渲染 JSON 时覆盖 Kaminari 的分页,或者告诉它用分页返回所有内容。

在 App1 中,我使用 ActiveResource 来访问 App2 的Group模型:

class Group < ActiveResource::Base
  self.site = "http://www.app2.com:3000"
end

这是 App2 的Group模型:

class Group < ActiveRecord::Base
  default_scope order('name asc')  
  paginates_per 10

这是我的控制器。Group.search东西被洗劫一空:

class GroupsController < ApplicationController
  # GET /groups
  # GET /groups.json
  def index
    @search = Group.search(params[:q])
    @groups = @search.result.page params[:page]

    respond_to do |format|
      format.html # index.html.erb
      format.json { render json: @groups }
    end
  end

我已向 App2 添加了 11 个组。在 App1 的控制台中,我得到:

[45] pry(main)> Group.all.count
=> 10

在不更改 HTML 分页呈现的情况下执行此操作的最佳方法是什么?

4

2 回答 2

3

您可以准备所有需要的通用逻辑,但仅对 HTML 格式应用分页:

def index
  @search = Group.search(params[:q])
  @groups = @search.result

  respond_to do |format|
    format.html { @groups = @groups.page(params[:page]) }
    format.json { render :json => @groups }
  end
end
于 2013-09-26T07:41:19.830 回答
1

您可以以不同的格式运行不同的代码:

  def index
    respond_to do |format|
      format.html {
        @search = Group.search(params[:q])
        @groups = @search.result.page params[:page]
      } # index.html.erb
      format.json { 
        render json: Group.all
      }
    end
  end
于 2013-09-26T06:36:07.990 回答