Ruby on Rails as_json限制

时间:2013-07-24 13:56:49

标签: ruby-on-rails ruby mongoid

我在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

但它不起作用。

我该怎么办?

1 个答案:

答案 0 :(得分:0)

我认为你只有一种可能性。

我认为您的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

很抱歉四年后发帖,但我希望有人认为你的问题和答案很有用。