Cómo personalizar la respuesta to_json en Rails 3
estoy usandorespond_with
y todo está conectado correctamente para obtener datos correctamente. Quiero personalizar el devueltojson
, xml
yfoobar
formatos de una manera SECA, pero no puedo entender cómo hacerlo usando el limitado:only
y:include
. Estos son excelentes cuando los datos son simples, pero con hallazgos complejos, no alcanzan lo que quiero.
Digamos que tengo una publicación quehas_many
imágenes
def show
@post = Post.find params[:id]
respond_with(@post)
end
Quiero incluir las imágenes con la respuesta para poder hacer esto:
def show
@post = Post.find params[:id]
respond_with(@post, :include => :images)
end
pero realmente no quiero enviar todo el objeto de imagen, solo la url. Además de esto, realmente quiero poder hacer algo como esto también (pseudocódigo):
def show
@post = Post.find params[:id]
respond_with(@post, :include => { :foo => @posts.each.really_cool_method } )
end
def index
@post = Post.find params[:id]
respond_with(@post, :include => { :foo => @post.really_cool_method } )
end
... pero todo de una manera SECA. En proyectos de rieles anteriores, he usado constructores XML para personalizar el resultado, pero replicarlo en json, xml, html, lo que no parezca correcto. Tengo que imaginar que los gurús de rails ponen algo en Rails 3 que no me estoy dando cuenta de este tipo de comportamiento. Ideas?