私はこれを一日中考えようとしていて、それは私を狂わせてしまいます。彼女のファラデーを使ったAPIでのページ設定のレール
私は2つのレールアプリ、ServerAppとClientAppを持っています。 ClientAppは、彼女のgemを使用して、ServerAppからAPIを介してデータを取得します。ページングの情報が必要になるまで、すべてが素晴らしかったです。
これは(これはページネーションのためkamainariを使用し、検索のために掻き回す)私が注文を取得するために使用しています方法です:
# ServerApp
def search
@search = Order.includes(:documents, :client).order('id desc').search(params[:q])
@orders = @search.result(distinct: true).page(params[:page]).per(params[:per])
respond_with @orders.as_json(include: :documents)
end
それは彼女がのコレクションとして使用するJSONでハッシュの配列を返します注文。それはうまく動作します。
# Response
[
{
"client_id": 239,
"created_at": "2013-05-15T15:37:03-07:00",
"id": 2422,
"ordered_at": "2013-05-15T15:37:03-07:00",
"origin": "online",
"updated_at": "2013-05-15T15:37:03-07:00",
"documents": [
{ ... }
]
},
...
]
しかし、ページング情報が必要でした。それは私がsend it as metadata with my jsonに必要なように見えた。だから私は、これまでの私の応答を変更します。
respond_to do |format|
format.json do
render json: { orders: @orders.as_json(include: :documents), metadata: 'sent' }
end
end
私ClientAppに私はorders.metadata @書くことができますし、「送信され」ますので、これは確かに、メタデータを介して送信ありません。しかし今、私の注文は「注文」内の配列に入れ子になっていますので、@ orders.ordersを使う必要があり、それを彼女のコレクションではなく配列のように扱います。
いくつかの読書をした後、ヘッダーを介してページ番号情報を送信することは、他の多くの人がこれをやったやり方でした(私はthis guideを使ってafter_filterでヘッダーを設定することができました)。しかし、ClientAppでこれらの応答ヘッダーを取得する方法については、さらに迷っています。ファラデーミドルウェアが必要だと思っていますが、これを稼働させるのは幸運なことです。
私はこれをどうやってやればいいか知っていれば、とても感謝しています。私はこれで壁に頭を打つ別の日を取ることができませんが、私はちょうどのような感じの1つの重要な情報を離れてこれを解決するからです!
EVT
は、ここでは、コードです。これは彼女のプロジェクトの問題かもしれません。そこに問題を開いて、プロジェクトの保守担当者からのフィードバックがあるかどうかを確認できます。 – poseid
私は彼女のgithubページに投稿することを検討していましたが、私はこれが私のところではもっと誤解であり、 – d3vkit