以json格式获取包含所有评论的所有帖子

时间:2016-10-27 08:09:30

标签: ruby-on-rails json

我有两个模型发布和评论

class Post < ActiveRecord::Base
  has_many :comments
end

class Comment < ActiveRecord::Base
  belongs_to :post
end

我如何获得所有带有评论的帖子,如下面的json回复:

{
  "posts": [
    {
      "name": "Ruby on Rails",
      "comments": [
        {
          "desc": "awesome"
        }
      ]
    },
    {
      "name": "Java",
      "comments": [
        {
          "desc": "Thanks"
        },
        {
          "desc": "very useful"
        }
      ]
    }
  ]
}

2 个答案:

答案 0 :(得分:2)

试试这个,在app / views / posts /中创建一个index.json.jbuilder, 并将以下代码添加到其中

json.posts @posts do |post|
  json.name post.name
  json.comments post.comments do |comment|
    json.desc comment.desc
  end
end

答案 1 :(得分:0)

使用activemodel Activemodel Serializers。还可以查看这个railscasts视频,它可以让您对activemodel序列化器以及如何使用它Railscasts-activemodel serializers有一个很好的了解。 希望我能帮到你。