添加到datamapper json的末尾

时间:2012-09-25 22:51:57

标签: ruby ruby-datamapper

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

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

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

有没有办法直接进行内联方法?

谢谢!

2 个答案:

答案 0 :(得分: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])

答案 1 :(得分:2)

你可以更简单。

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

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