Könnte offensichtlich sein, aber mir fehlt hier noch das Grundwissen.Rails: format.js oder format.json oder beides?
Also in Controller, kann beides verwendet werden, oder ist es immer Javascript, so sind beide gleich?
Könnte offensichtlich sein, aber mir fehlt hier noch das Grundwissen.Rails: format.js oder format.json oder beides?
Also in Controller, kann beides verwendet werden, oder ist es immer Javascript, so sind beide gleich?
In Rails 3.1 ist der einzige Unterschied, den ich feststellen kann, dass der If-Formatierer js ist, dann wird die Antwort als reiner Text gesendet. Wenn es json ist, wird es als json codiert.
wenn format.json
format.json {
render :json => @accounts.map(&:attributes)
}
Server senden:
data:application/json;base64,
wenn format.js
format.js {
render :json => @accounts.map(&:attributes)
}
Server senden:
[{"id":33,"email":"[email protected]"}]
json
und js
sind zwei verschiedene Arten von Reaktion und sie werden als verschiedene MIME-Typen in Rails definiert
Mime::Type.register "text/javascript", :js, %w(application/javascript application/x-javascript)
Mime::Type.register "application/json", :json, %w(text/x-json application/jsonrequest)
Auch wenn Json eine Teilmenge von JavaScript in Betracht gezogen werden können, sind nicht alle JavaScript-Antworten sind tatsächlich Antworten Json.
Sie möchten vielleicht mit Json und Js in der gleichen Aktion antworten.
Zum Beispiel haben Sie möglicherweise eine Aktion, die mit Json auf einen API-Aufruf und mit JavaScript (möglicherweise mit RJS) zu einem internen Ajax-Aufruf reagiert.
Die richtige Antwort – Donato
Ich glaube, dass beide verwendet werden können, weil sie separate MIME-Typen sind. Warum nicht versuchen und sehen? –