0

DataMappers.to_jsonメソッドによって生成されたJSONの最後に別のキーと値のペアを追加する方法を考えていました。を呼び出そうとするとto_json(:methods => [:total_pages])、メソッドビットがすべて無視されます。

私はそれがこのようなものを生み出すことを望みます:

{
  'data':        [rows go here],
  'total_pages': X
}

メソッドをインラインで実行する方法はありますか?

ありがとう!

4

2 に答える 2

2

JSON文字列を編集することもできますが、私が知る限り、JSONに任意の値を挿入する簡単な方法はありません。

呼び出すyour_dm_resource.to_json(:methods => [:total_pages])ことはあなたが望むことをする正しい方法です、あなたのsome_dm_resource.total_pagesメソッドがあなたが期待するように働いていることを確認してください。

また、最新のRubyを使用している場合は、ハッシュロケットをドロップできます。

your_dm_resource.to_json(methods: [:total_pages])
于 2012-09-25T23:06:07.243 に答える
2

あなたはそれをもっと簡単にすることができます。

{
    data:   YourModel.your_whatever,
    total_pages: YourModel.total_pages
}.to_json

DMシリアル化to_jsonは、それ自体が呼び出されるのと同じオブジェクトのオプションで提供されるメソッドを呼び出そうとします(あなたの場合、おそらく、total_pagesメソッドが定義されていない結果のコレクション)

于 2012-09-26T02:34:42.387 に答える