Ein Memo darüber, wie man VIEW als JSON in Rails 5 ausgibt. Verwendet respond_to und format.json.
Normalerweise wird in Rails dem in VIEW.erb geschriebenen Text Vorlagen-HTML hinzugefügt, aber Sie können Formate wie JSON oder XML angeben, um es als REST API usw. verwendbar zu machen.
So:
respond_to do |format|
format.html
@json=%({"origin":#{@origin_addresses.to_json},"dest":#{@destination_addresses.to_json},"km":#{@km.to_json}})
format.json {render :json => @json}
end
respond_to ist optional, aber…
Lassen Sie mich erklären.
Wenn Sie respond_to verwenden, wird bei normalem Zugriff auf ./page show.html.erb (unter der Annahme, dass diese Aktionsmethode “show” ist) referenziert, und wenn ./page.json explizit json mit einer Erweiterung anfordert, referenziert es den Inhalt der in format.json angegebenen @json-Variablen und gibt ihn unverändert aus.
Also… wenn Sie es nur als dedizierte API verwenden, müssen Sie nicht wirklich respond_to verwenden. Nur für den Fall.
to_json escaped Variablen als JSON. Es gibt etwas Ähnliches wie escape_Javascript(?), aber es scheint besser zu sein, dieses zu verwenden.