2013-05-23 13 views
0

J'ai le code suivant dans un de mes contrôleurs;Ajouter un seul attribut à un Json

render :json => Article.order("ID Desc").limit(3) 

qui sort un tableau d'articles tels que:

[{"id":1, "content":"Blah"},{"id":2, "content":"Blah"}, {"id":3, "content":"Blah"}] 

Tout ce que je veux faire est d'ajouter un attribut count à chaque modèle. Donc, ce serait quelque chose comme:

[{"id":1, "content":"Blah", "count":3},{"id":2, "content":"Blah", "count":1}, {"id":3, "content":"Blah", "count":6}] 

Y at-il de toute façon d'aller à ce sujet dans mon contrôleur sans redéfinissant la méthode as_json?

je vis une méthode merge appelée dans une autre question, donc j'ai essayé ceci:

render :json => Article.order("ID Desc").limit(3).merge(:count => 2) 

sans chance.

Répondre

1

Il vaut mieux pour vous de gérer vous-même JSON, mais pas to_json méthode (de tableaux ou active_record)

articles = Article.order("ID Desc").limit(3) 
render :json => articles.map { |article| 
    { 
    :id => article.id, 
    :content => article.content, 
    :count => 3 # or 2 or 1 
    } 
} 
Questions connexes