2017-02-26 14 views
1

私はjsonapi-resources gemを私のRailsアプリケーションで使用しています。私のリソースの1つはpaginationです。ページ番号を無効にして、ユーザーがのすべての結果を返すようにする場合があります。jsonapi-resources条件付きでページャを無効にする

カスタムフィルタを使用してカスタム実装を試みましたが、失敗しました。

私はページネータに "奇妙な" 値を渡してみましたが、それは(ページングされたページネータ用の例)助けにはならなかった。

  • /api/v1/bars?page[size]=-1 - 値が許可されていない
  • /api/v1/bars?page[size]=0から
  • /api/v1/bars?page[size]=999999を許可されていない値を - 確かにこれはうまくいくかもしれませんが、100%

答えて

1

今日私はまったく同じ問題を抱えており、この未解決の問題を発見しました。

以下は、この問題をどのように処理したかです。私は私が行うときに、明示的にpaginations paramsはを使用する必要があるページネータを使用したい時はいつでも今

​​

class CustomPaginator < PagedPaginator 
    attr_reader :limit, :offset, :disable_pagination 

    def initialize(params) 
    @disable_pagination = params.nil? 
    super 
    end 

    def apply(relation, _order_options) 
    disable_pagination ? relation : super 
    end 
end 

とリソースで

は、私はちょうど下記のような paginator :customを追加 CustomPaginatorを使用していましたサーバーに要求し、私がそれらを使用しないときは、完全な非応答の応答を取得します。

クラスの実装は完全ではありませんが(duh!)、これは一般的な概念を示すことです

関連する問題