2012-06-13 7 views

Antwort

13

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.

-4

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'] %>"); 
Verwandte Themen