2

假设我有一个Articlewith n Comments。我将如何在使用 DataMapper 的一次查询中获取文章的所有评论?

类似于以下错误代码:

Article.get(:id).include(:comments).to_json

我希望在 json 中返回相关的评论,如下所示:

{
  article object
  comments: [
    { comment object },
    { comment object } 
  ]
}

似乎必须有比获取评论更好的方法,然后在调用 to_json 之前手动将它们添加到属性哈希中。

4

1 回答 1

8

在https://github.com/datamapper/dm-serializer中找到它lib/to_json.rb

似乎有两个选项,relationships以及methods作为to_json方法的选项。默认包含尚不可能,但要求:

@article.to_json(methods: [ :comments ])

更深入地说,代码中的注释中有一个未记录的(因此可能会发生变化)示例:

comments.to_json(:relationships=>{:user=>{:include=>[:first_name],:methods=>[:age]}})

所以像:

@article.to_json(relationships: { comments: { methods: [ :likes ] } }
于 2013-06-20T00:41:05.190 回答