Estoy tratando de presentar un índice de todos los artículos junto con un artículo completo a través de JSON en mi aplicación de rieles, pero me cuesta un poco encontrar la manera de hacerlo.Ruby on Rails Serialización avanzada de JSON
Aquí está mi controlador de ahora:
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
Lo que me gustaría hacer en la respuesta es añadir un índice de todos los artículos, así:
@index = Article.find(:all, :select => 'id, title')
La única manera que' He podido hacerlo, coloca tanto el índice como el artículo en un hash o matriz y luego lo puse en JSON.
@response = { :item => @article, :index => @index }
código completo con ambos:
@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
Esto estaría bien, excepto que ahora no puedo especificar :include
o :except
y conseguir que se muestra correctamente.