2012-05-18 12 views
5

Ho una raccolta di articoli che desidero mostrare nella risposta JSON. Vorrei anche esportare un nodo sul tipo di richiesta json richiesta.Utilizzo di rabl e di una raccolta, problemi nell'aggiunta di un ulteriore nodo figlio

index.json.rabl

collection @articles => :headlines 
extends 'articles/show' 

show.json.rabl

object @article 
attributes :foo 

andando così a articles.json mi dà:

{"headlines":[{"foo":thing1},{"foo":thing2}]} 

Quello che mi piacerebbe fare è ottenere risultati come questo:

{"rss":{"name":"articles","woot":"what?"}, 
{"headlines":[{"foo":thing1},{"foo":thing2}]} 

Ho provato a mettere il nodo (: rss) {"yadda yadda"} nel file index.json.rabl, ma questo aggiunge solo il nodo: rss in ogni articolo.

Ho provato ad utilizzare

glue @article do 
    node(:rss) { "yadda yadda" } 
end 

in entrambi i file di indice e spettacolo e nessuno ha lavorato come speravo.

Ho provato molte altre cose, ma a questo punto sono solo suppongo ora.

risposta

9

Ah ... lo capisco. Ho deciso di non usare "@articoli collezione"

index.json.rabl

object false 
node(:rss) { partial('articles/rss.json.rabl', :object => @feedName) } 

node :headlines do 
    partial(@jsonView, :object => @articles) 
end 
+0

qual è la variabile @jsonView? Mi sto imbattendo in un problema simile. –

+0

Probabilmente solo una stringa che identifica il partial che vuole rendere (uno con più o meno dettagli per esempio), forse ha deciso su qualche parte dei parametri della query. per esempio. '/articles.json => @jsonView =" articles/light ", /articles.json?detailed=true => @jsonView =" article/detailed "' – Soup