Ruby 添加到datamapper json的末尾

Ruby 添加到datamapper json的末尾,ruby,ruby-datamapper,Ruby,Ruby Datamapper,我想知道如何在DataMappers.to_JSON方法生成的JSON末尾添加另一个键值对。当我尝试调用到json(:methods=>[:total_pages])时,它会同时忽略方法位 我希望它能生产出这样的产品: { 'data': [rows go here], 'total_pages': X } 有没有一种方法可以直接内联使用这个方法 谢谢 您可以编辑JSON字符串,但据我所知,向JSON中注入任意值并不容易 调用你的\u dm\u资源。调用\u json(:

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

我希望它能生产出这样的产品:

{
  'data':        [rows go here],
  'total_pages': X
}
有没有一种方法可以直接内联使用这个方法


谢谢

您可以编辑JSON字符串,但据我所知,向JSON中注入任意值并不容易

调用
你的\u dm\u资源。调用\u json(:methods=>[:total\u pages])
是做你想做的事情的正确方法,检查你的
一些\u dm\u资源。total\u pages
方法正按照你期望的方式工作

如果您使用的是现代Ruby,您可以放弃哈希火箭:

your_dm_resource.to_json(methods: [:total_pages])

您可以编辑JSON字符串,但据我所知,向JSON中注入任意值并不容易

调用
你的\u dm\u资源。调用\u json(:methods=>[:total\u pages])
是做你想做的事情的正确方法,检查你的
一些\u dm\u资源。total\u pages
方法正按照你期望的方式工作

如果您使用的是现代Ruby,您可以放弃哈希火箭:

your_dm_resource.to_json(methods: [:total_pages])
你可以做得更简单

{
    data:   YourModel.your_whatever,
    total_pages: YourModel.total_pages
}.to_json
DM serialization to_json尝试调用在其自身调用的同一对象上的选项中提供的方法(在您的情况下,可能是结果的集合,它没有定义total_pages方法)

您可以更简单地执行此操作

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

DM serialization to_json尝试调用在其自身调用的同一对象上的选项中提供的方法(在您的情况下,可能是结果的集合,没有定义total_pages方法)

谢谢Daniel。我一直在摆弄total_pages方法,当我将它作为类方法使用时,我无法让它工作(它可能因为关系而有点不合适)。您知道在to_json参数中是否可以引用本地函数,或者它必须是一个符号吗?谢谢Daniel。我一直在摆弄total_pages方法,当我将它作为类方法使用时,我无法让它工作(它可能因为关系而有点不合适)。您知道在to_json参数中是否可以引用本地函数,或者它必须是一个符号吗?