我想要一个我Post
模型的哈希表示,并将帖子的相关注释包含为哈希数组。
我的模特:
class Post < ActiveRecord::Base
has_many :comments
end
class Comment < ActiveRecord::Base
belongs_to :post
end
所以输出应该是这样的:
{
"id": 3,
"body": "This is a post",
"comments": [
{
"id": 1,
"post_id": 3,
"body": "This is a comment",
}
]
}
我尝试过的事情(只返回帖子,但没有回复相关评论:
Post.includes(:comments).as_json
Post.eager_load(:comments).as_json
答案 0 :(得分:0)
您可以尝试以下操作:
Post.as_json(include: :comments)
答案 1 :(得分:0)
我担心这就是ActiveRecord会为你做的事情:2个请求。 一个用于父对象,一个用于子对象。
尝试使用JOIN创建SQL代码并将其定向到对象,然后在生成的对象上运行as_json。