我想知道如何在DataMappers .to_json
方法生成的JSON末尾添加另一个键值对。当我尝试调用to_json(:methods => [:total_pages])
时,它会一起忽略方法位。
我希望它能产生这样的东西:
{
'data': [rows go here],
'total_pages': X
}
有没有办法直接进行内联方法?
谢谢!
答案 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方法)