1

JSONをレンダリングするときにカミナリのページネーションをオーバーライドしたい、またはページネーションですべて返すように指示したい。

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 に答える