Wie gebe ich an, dass ein JSON-Objekt zurückgegeben werden soll, wenn eine Ajax-Anfrage mit dem Parameter rails remote: true übergeben wird? Und wenn das JSON-Objekt zurückgegeben wird, wie kann ich es fangen und verwenden?Wie verwende ich die Rails Remote: True-Parameter mit JSON?
Antwort
Es gibt viele Möglichkeiten, dies je nach Ihren Besonderheiten zu beantworten (zB: Sie verwenden jquery und den UJS-Adapter), aber ich poste Sachen aus einem Dokument, das ich selbst benutze, um den gesamten Prozess besser zu verstehen: Ich benutze diesen Great post zu einem großen Teil: Ich werde meine Antwort aktualisieren, da ich derzeit selbst durch dieses Zeug arbeite.
Sie können den Datentyp-Attribut auf das DOM-Element hinzufügen, wie folgt aus:
<%= link_to "Add a new task", new_project_task_path(@project), "data-type" => "json", :id => "add_task_btn" %>
Sie können auch eine Standard-Datentyp in jQuery global $ .ajaxSetup() Funktion definieren. Änderungen alle Ajax-Anfragen:
$.ajaxSetup({
dataType: 'json'
});
Und der dritte Weg ist in der beforeSend Rückruf:
$(“#add_some_button”).live(“ajax:beforeSend”, function(e, xhr, settings){
new_data_type = “application/json, text/javascript, */*; q=0.01”;
xhr.setRequestHeader('accept', new_data_type);
})
(die q = 0,01 ist die Präferenz zwischen 0 und 1)
So können Sie ändern, Diese DataType-Eigenschaft und HTTP-Header passen sich Ihren Bedürfnissen an. Als Referenz ist hier eine Liste von möglichem MIME-Typ: Here
und die spezifische Javascript Liste Medientyp: Here
Übersicht Datenformat vom Server zurückgesendet werden: 1.) Ajax die Anfrage sendet mit Der Accept-Header wurde auf den gewünschten MIME-Typ festgelegt. 2.) Rails Controller überprüft den Accept-Header, um festzustellen, was zurückgegeben werden soll. 3.) Der Controller bestimmt, ob die Aktion den bestimmten MIME-Typ verarbeitet. In Gleisen 3 können wir reply_with verwenden, vor 3.0 ist es ein respond_to-Block in der Controller-Aktion.
Überblick über die Möglichkeiten, Ajax in Rails verwendet werden kann 3.1:
Ich glaube, dass die bevorzugte Methode ist nun den Standard-Datentyp als Skript zu verwenden und dann mit AJAX-Anforderungen verarbeiten entweder eine js.erb oder js. Kaffeedatei.
Optionen: 1.) Klicken Sie Ereignis: Einfügen von DOM-Elemente 2.) ein Formular über Ajax 3.) Löschen über Ajax 4.) clientseitige Validierung mit Ajax (Unter Verwendung von Daten-Remote an einem Eingang Einreichen Feld) 5.) Dynamische Auswahl hinzufügen (Verwendung von Daten-Remote in einem Auswahlfeld) 6.) Ajax Paginierung - HTML direkt zurückgeben.
Noch einmal, was ich hier einschließe, ist meine eigene Gliederung/Rezension, um Details zu erhalten, schau dir bitte Andrea Singhs großartigen Beitrag here an.
Bitte versuchen Sie dies:
app/controllers/examples.rb
class ExamplesController < ApplicationController
def new
@my_json = { :message => "Hello json"}
end
end
app/views/examples/new.html.haml
= link_to "New", new_examples_path :remote => true
app/views/examples/new.js.erb
console.log("<%= @my_json %>");
console.log("<%= @my_json['message'] %>");
- 1. Wie verwende ich Json mit Typoskript-Schnittstellen?
- 2. Wie verwende ich die Datumsauswahl mit form_for in Rails?
- 3. Wie verwende ich JSON-CPP?
- 4. Wie verwende ich die JSON Accumulate-Methode mit List?
- 5. Wie verwende ich ActiveRecord außerhalb von Rails?
- 6. Rails Remote-Konflikte mit bootstrap remote modal
- 7. Wie verwende ich in Rails parametrisieren?
- 8. Wie verwende ich die Rails Console Über Jupyter
- 9. Wie verwende ich JSON in älteren Browsern?
- 10. Wie verwende ich update_attributes mit benutzerdefinierten Setter-Methoden in Rails?
- 11. Wie verwende ich javascript_include_tag mit js.erb-Datei in Rails 4?
- 12. Wie verwende ich mock_models mit RSpec außerhalb von Rails?
- 13. Wie verwende ich JSON-Objekte von Facebook mit PHP?
- 14. Wie verwende ich GVIM, um eine Remote-Datei zu bearbeiten?
- 15. Rails format.js und remote true
- 16. Wie installiere ich eine Rails-Anwendung, wenn ich RVM verwende?
- 17. Wie verwende ich RSpec mit JBuilder?
- 18. Wie beschränke ich den Benutzer nur die Entitäten zu lesen, wenn ich Remote-API verwende?
- 19. Remote-Rails-Formular (simple_form_for)
- 20. Wie verwende ich die Rails DateHelper Methode time_ago_in_words außerhalb von Rails?
- 21. Ruby-on-Rails, die Cachefragmente mit submit to remote ablaufen
- 22. Parse JSON mit einem Array in Rails
- 23. Wie verwende ich Rack Middleware mit Rails3?
- 24. Wie verwende ich AutoValue mit Retrofit 2?
- 25. Wie Einrichten von Remote Form in Rails?
- 26. Rails 3: redirect_to mit: remote => true
- 27. Wie verwende ich Eclipse für Ruby on Rails (RoR)
- 28. Wie verwende ich den Radio Button in den Rails?
- 29. Wie verwende ich Json.NET, um Json in PowerShell zu analysieren?
- 30. RubyOnRails: Wie verwende ich Hilfsmethoden in Rails Console?