【问题标题】:ruby datamapper how to include child associations from has n association in queryruby datamapper如何在查询中包含来自有n个关联的子关联
【发布时间】:2013-06-15 23:54:59
【问题描述】:

假设我有一个 Article 和 n Comments。我将如何使用 DataMapper 在一个查询中获取文章中的所有 cmets?

类似于以下错误代码:

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

我希望在 json 中返回关联的 cmets,如下所示:

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

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

【问题讨论】:

    标签: ruby ruby-datamapper


    【解决方案1】:

    https://github.com/datamapper/dm-serializerlib/to_json.rb 中找到它

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

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

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

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

    比如:

    @article.to_json(relationships: { comments: { methods: [ :likes ] } }
    

    【讨论】:

    • 谢谢。很惊讶这是多么难以找到!
    • 太好了……我一直在找这个
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-27
    • 1970-01-01
    • 2010-12-22
    • 2015-05-13
    • 2013-05-07
    • 2018-07-07
    相关资源
    最近更新 更多