Uniformare risposte JSON in Rails

Ciao a tutti,

Ho un’applicazione Rails con molte richieste Ajax/Json che vorrei
uniformare, cerco qualcosa tipo le “entity” di grape.

La “rails way” in questi casi? Ho visto roar ma non mi convince molto.

Esperienze a riguardo? Alternative?

Non mi pare che ci sia un vero e proprio rails way per queste cose.
Qualche mese fa ho dovuto fare un backend rails che mandava risposte
jsonp ad un frontend angular e ho usato codice del tipo

format.json {
@model = Model.where(…)
}

e viste costruite con jbuilder, più la gemma jpbuilder che ne converte
l’output in jsonp. Una vista è del tipo

json.array! @model do |model|
json.id @model.id

end

Sono viste, per cui se ci sono parti ricorrenti le puoi generare con
helper o qualsiasi altra tecnica standard.

Nel tuo caso chiedi di json, ma chi dovesse usare jsonp faccia
attenzione a questo bug ancora aperto

Il mio workaround è consistito nell’aggiungere

    response.headers["Content-Type"] = "application/javascript"

nel blocco delle format.json.

Rileggendomi ho scoperto un errore.
La vista giusta è

json.array! @model do |model|
json.id model.id

end

senza la @ prima di model.id

@model è un array ritornato dalla Model.where (ok, non esattamente un
array, ma ci siamo intesi). Avrei fatto meglio a dargli un nome plurale
:slight_smile: