Comment personnaliser to_json réponse dans Rails 3

Je suis en utilisant respond_with et tout ce qui est accroché en haut à droite pour obtenir les données correctement. Je veux personnaliser le retour de l' json, xml et foobar formats en voie SÈCHE, mais je ne peux pas comprendre comment le faire en utilisant le peu de :only et :include. Ce sont de grands lorsque les données sont simples, mais avec complexe trouve, ils tombent à court de ce que je veux.

Permet de dire que j'ai un post qui has_many images

def show
  @post = Post.find params[:id]
  respond_with(@post)
end

Je veux inclure des images avec la réponse, de sorte que je pourrais faire ceci:

def show
  @post = Post.find params[:id]
  respond_with(@post, :include => :images)
end

mais je n'ai pas vraiment envie d'envoyer la totalité de l'image de l'objet le long, juste l'url. En plus de cela, je veux vraiment être en mesure de faire quelque chose comme ceci (pseudo-code):

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

... mais le tout dans une voie SÈCHE. Dans les anciens rails de projets, j'ai utilisé XML constructeurs pour personnaliser la sortie, mais la réplique à travers json, xml, html, ce que ne semble pas droit. J'ai d'imaginer que les rails gourous de mettre quelque chose dans Rails 3, que je ne suis pas réaliser ce type de comportement. Des idées?

OriginalL'auteur coneybeare | 2010-09-15