0

.to_json我想知道如何在 DataMappers方法生成的 JSON 末尾添加另一个键值对。当我尝试调用to_json(:methods => [:total_pages])时,它会忽略所有方法。

我希望它产生这样的东西:

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

有没有办法只做内联方法或其他方法?

谢谢!

4

2 回答 2

2

你可以做的更简单。

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

DM 序列化 to_json 尝试调用它自己调用的同一对象的选项中提供的方法(在您的情况下 - 可能是结果集合,没有定义 total_pages 方法)

于 2012-09-26T02:34:42.387 回答
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 回答