获取json格式的所有帖子和所有评论



我有两个模型Post和Comment

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"
        }
      ]
    }
  ]
}

试着在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

使用activemodel activemodel序列化器。也可以看看这个railscasts视频,它让你对activmodelserializers有了一个很好的了解,以及如何使用它。希望我对你有所帮助。

最新更新