覆盖rails中的as_json方法

时间:2016-10-14 04:40:44

标签: ruby-on-rails activerecord

我正在尝试使用后端的rails api和前端的角度js来建立一个博客应用程序。 在我的应用程序中,每个帖子都有很多评论,每条评论都有很多回复。我在帖子和评论以及评论和回复之间建立了一对多的关系。当我点击帖子标题时,我会使用PostController#show方法将其发布到帖子显示页面并附上评论。对于Post模型中的这个,我有这样的覆盖as_json方法:

class Post < ActiveRecord::Base
  has_many :comments

  def as_json(options = {})
    super(options.merge(include: :comments))
  end
end

但我想在评论中显示所有回复。为此我该如何修改as_json方法?

1 个答案:

答案 0 :(得分:0)

你可以试试这个

posts.as_json(include: { comments: {
                           include: { replies: {
                                          only: :body } },
                           only: :title } })

Ref