在Rails

时间:2016-03-25 21:13:18

标签: ruby-on-rails ruby activerecord

需要在一个有效记录查询中检索所有对象的所有子项,但这些不起作用:

Class.includes(:children)

Class.joins(:children).uniq.all

两个人都找不到孩子。它需要一个像:

这样的回复

对象:{ "param1":"value1", ... "children" : [...] }

它类似于Eloquent ORM(PHP)中的.with()

1 个答案:

答案 0 :(得分:3)

听起来您正在尝试将格式化为JSON的子项包含在内。这将返回你想要的东西:

Foo.find(1).as_json({ include: :bars })
# => {"foo"=>{"id"=>1, "name"=>"first", :bars=>[{"id"=>1, "amount"=>5}, {"id"=>2, "amount"=>5}]}}

您可以查看as_json的API文档,了解您可以使用的其他选项。一些常见的是methodsonly来限制返回的字段。