Sto cercando di rendere un indice di tutti gli articoli insieme a un articolo completo tramite JSON nella mia app per rotaie, ma ho qualche problema a capire come farlo.Ruby on Rails Serializzazione JSON avanzata
Ecco il mio controller ora:
if params[:id]
@article = Article.find(params[:id])
else
@article = Article.published.not_draft.by_recent.first
end
respond_to do |format|
format.js { render :json => @article.to_json(
:except => [ :created_at, :updated_at, :draft, :id, :publish ],
:include => {
:comments => {
:only => [:body]
}
}),
:callback => params[:callback]}
end
Quello che mi piacerebbe fare nella risposta è aggiungere un indice di tutti gli articoli, in questo modo:
@index = Article.find(:all, :select => 'id, title')
L'unico modo che ho' è stato in grado di farlo, è mettere sia l'indice che l'articolo in un hash o array e poi metterlo in JSON.
@response = { :item => @article, :index => @index }
codice completo con entrambi:
@index = Article.find(:all, :select => 'id, title')
if params[:id]
@article = Article.find(params[:id])
else
@article = Article.published.not_draft.by_recent.first
end
@response = { :item => @article, :index => @index }
respond_to do |format|
format.js { render :json => @response.to_json(), :callback => params[:callback]}
end
Questo andrebbe bene, solo che adesso non posso specificare :include
o :except
e farlo rendere correttamente.