2013-07-24 68 views
1

我有這樣的 「as_json」 法在我的崗位模型:Ruby on Rails的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 

但不起作用。

我該如何繼續?

回答

0

我認爲你只有一種可能性。

我suppouse您在Post模型有has_many :comments協會

所以,你可以定義你的Post模型中的下一個has_many關聯,這樣的事情:

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 

對不起四年後發佈,但我希望有人發現有用的問題和這個答案。