1

我的 Post 模型中有这个“as_json”方法:

def as_json(options={})
    super(options.merge(:include => { :comments => { :include => [:user] }, :hashtags => {}, :user => {}, :group => {} }))
end

我想像这样设置一个限制属性:comments

def as_json(options={})
    super(options.merge(:include => { :comments => { :include => [:user], :limit => 10 }, :hashtags => {}, :user => {}, :group => {} }))
end

但它不起作用。

我应该如何进行?

4

1 回答 1

1

我认为你只有一种可能。

我想你的模型has_many :comments中有一个关联Post

因此,您可以has_many在模型中定义下一个关联Post,如下所示:

has_many :ten_comments, -> { limit(10) }, class_name: "Comment", foreign_key: :post_id

然后您将能够在as_json方法中执行此操作:

def as_json(options={})
   super(options.merge(:include => { :ten_comments => { :include => [:user] }, :hashtags => {}, :user => {}, :group => {} }))
end

很抱歉在四年后发布,但我希望有人对你的问题和这个答案有用。

于 2017-07-11T18:39:00.623 回答