Sto usando respond_with
e tutto è collegato correttamente per ottenere dati correttamente. Voglio personalizzare i formati restituiti json
, xml
e foobar
in modo DRY, ma non riesco a capire come farlo utilizzando il numero limitato :only
e :include
. Questi sono grandi quando i dati sono semplici, ma con reperti complessi, non sono all'altezza di ciò che voglio.Come personalizzare la risposta to_son in Rails 3
Diciamo che ho un post che has_many
immagini
def show
@post = Post.find params[:id]
respond_with(@post)
end
voglio includere le immagini con la risposta così ho potuto fare questo:
def show
@post = Post.find params[:id]
respond_with(@post, :include => :images)
end
ma io davvero non desidera inviare il tutto l'oggetto dell'immagine, solo l'url. In aggiunta a questo, voglio davvero essere in grado di fare qualcosa di simile anche questo (pseudocodice):
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
... ma tutto in modo SECCO. Nei vecchi progetti di rotaie, ho utilizzato costruttori XML per personalizzare l'output, ma replicandolo su json, xml, html, qualunque cosa non sembri giusta. Devo immaginare che i guru delle rotaie abbiano messo qualcosa in Rails 3 che non sto realizzando per questo tipo di comportamento. Idee?
Questo link è un 404. – lashleigh
https://github.com/fabrik42/acts_as_api – coneybeare