respond-to

___ answer24771107 ___

Die Fälle, in denen Sie jede %code% -Zeile brauchen / brauchen.

Normalerweise brauchen Sie nichts davon. Rails sucht standardmäßig nach einer HTML-Datei (auch Vorlage genannt), die mit dem Aktionsnamen unter dem View-Ordner übereinstimmt, der dem Namen des Controllers entspricht.

Ich bin mir nicht sicher, wann / warum die json und html manchmal gepaart werden (wie im scaffold-generated code). Vielleicht ist die json Linie für Turbolinks (bitte bestätigen / korrigieren). Aber ich weiß, dass Sie einen %code% Block mit verschiedenen Arten von Formatzeilen verwenden, wenn jeder Typ sich anders verhalten soll (z. B. 10 Ergebnisse gleichzeitig durch js, aber mehr Ergebnisse durch html).

Das Format js wird benötigt, wenn Sie %code% in einem Formular oder einer Verknüpfung verwenden. Dies liegt daran, dass die Verwendung von remote: true die HTML-Vorlage deaktiviert und stattdessen nach einer js-Datei sucht, die mit dem Namen der Aktion übereinstimmt, und diese Datei ausführt / rendert. Sie brauchen die Antwort auf die JSON-Zeile nicht wirklich, wenn Sie nur in js arbeiten.

Bonushinweis: Wenn Ihre js-Dateien js.erb haben, können Sie auf die Instanzvariablen zugreifen (wie wäre es mit lokalen Variablen? Bitte bestätigen / korrigieren Sie diese), die Sie in Ihrer Aktion festgelegt haben. Diese Art von Sinn macht Sinn, weil Ihre %code% -Datei technisch eine Ansicht ist. Views können auf die Variablen ihrer entsprechenden Aktionen zugreifen (hmm, was ist, wenn Vies von einem anderen Controller gerendert werden?). Wenn Sie also bereits Zugriff auf die Variablen Ihrer Aktion in Ihrer js-Datei haben, können Sie in vielen Situationen keine Ajax-Aufrufe oder Json-Aufrufe mehr ausführen müssen.

Ich bin mir eigentlich nicht sicher, wann du die json-Zeile brauchst, wenn du auch %code% / javascript verwendest. explizite jQuery.ajax () -Methodenaufrufe, die JSON-Daten könnten die Verwendung der Antwort auf JSON-Zeile rechtfertigen.

    
___ qstntxt ___

Wenn es

gibt %Vor%

Es scheint, als ob die Zeile html und die Zeile js automatisch die Datei abruft / aufruft, die dem Namen der Aktion entspricht. Und die html und die js sind das eine oder das andere, nicht beides. Ist das korrekt?

Der JSON wird aufgerufen, wenn Sie einen AJax-Anruf in Ihrem js haben, der angerufen wurde, und er fordert Daten an, und diese benötigen Daten, um mit ihnen zu antworten, richtig? Brauche ich es, um auf json und js oder nur auf eins zu antworten?

Wenn Sie nicht antworten und alle Typen weglassen, reagiert sie standardmäßig auf html und js?

Wenn ich in der Steuerung response_to statt in jeder Aktion blockiere, um einen Block zu blockieren, gilt %code% für jedes Argument (: thml,: js,: xml,: json usw.)?

Alternative Syntax:

%Vor%

Wie funktioniert die alternative Syntax?

Wenn Sie die alternative Syntax verwenden, können Sie nicht unterschiedlich auf verschiedene Arten von Anfragen reagieren? Müssen Sie einen read_to-Block anstelle der alternativen Syntax erstellen, wenn Sie anders reagieren möchten? Wie geht jeder dieser Fälle auf eine gradevolle Verschlechterung in HTML ein?

    
___ answer24752237 ___
  

%code%

     

Für eine bestimmte Controller-Aktion generiert respond_with eine angemessene Antwort basierend auf dem vom Client angeforderten MIME-Typ.

Dies bedeutet im Grunde, dass Ihr Controller die entsprechenden Daten auf Anfrage sendet - zum Beispiel, wenn Sie Folgendes getan haben:

%Vor%

Dies würde grundsätzlich mit den Daten von %code% jedes Mal antworten, wenn Sie eine Anfrage senden. Wenn die Anforderung im Mime-Typ %code% ist, wird sie als JSON-Objekt zurückgegeben. Wenn es sich um eine HTML-Anfrage handelt, wird sie mit dem HTML-Objekt in der %code% -Ansicht

zurückkommen

-

  

%code%

     

Grundsätzlich können Sie die spezifischen Antworten auf verschiedene Mime-Typen anpassen. Wenn Sie eine JS-Anfrage senden, können Sie die JS-Antwort usw. verwalten

%code% Blöcke innerhalb der Controller-Aktionen sind sehr umständlich und nur für bestimmte Änderungen / Bearbeitungen an der Antwort selbst gedacht.

Eine viel einfachere Methode, %code% zu bearbeiten, besteht darin, sie oben in der Controller-Datei zu deklarieren und Rails im Wesentlichen mitzuteilen, dass jede Aktion die in dieser Methode definierten Optionen verwendet:

%Vor%     
___ tag123ajax ___ AJAX (Asynchrones JavaScript und XML) ist eine Technik zum Erstellen nahtloser interaktiver Websites über den asynchronen Datenaustausch zwischen Client und Server. AJAX erleichtert die Kommunikation mit dem Server oder partielle Seitenaktualisierungen ohne eine herkömmliche Seitenaktualisierung. ___ tag123rubyonrails ___ Ruby on Rails ist ein Open-Source-Full-Stack-Webanwendungs-Framework, das in Ruby geschrieben ist. Es folgt dem populären MVC-Framework-Modell und ist bekannt für seinen "convention over configuration" -Ansatz für die Anwendungsentwicklung. ___ tag123respondiert ___ hilf uns dieses Wiki zu bearbeiten ___ answer33602177 ___

Beachten Sie, dass das Rails 4 %code% -Feature in das %code% ( Ссылка ).

    
___ qstnhdr ___ Wie funktioniert reply_to und respond_with in Schienen? ___
3
Antworten

Wie funktioniert reply_to und respond_with in Schienen?

Wenn es gibt %Vor% Es scheint, als ob die Zeile html und die Zeile js automatisch die Datei abruft / aufruft, die dem Namen der Aktion entspricht. Und die html und die js sind das eine oder das andere, nicht beides. Ist das korrekt? Der J...
14.07.2014, 22:29