[JAVA] Buchungsfunktion implementiert durch asynchrone Kommunikation in Rails

Einführung

Dieses Mal werden wir die Buchungsfunktion durch asynchrone Kommunikation implementieren. Dieses Mal beginnen wir, um uns auf die asynchrone Verarbeitung zu konzentrieren, mit dem Zustand, in dem die Buchungsfunktion mit Bildschirmübergang bereits implementiert ist. Um js zu verstehen, wird es in einfachen js beschrieben. Da ich ein Anfänger bin, würde ich es auch begrüßen, wenn Sie auf Fehler hinweisen könnten.

Schritt 1 Remote hinzufügen: ture

Fügen wir dem Eingabeformular remote: ture hinzu!

<%#Aufgabeneingabeformular%>
<div class="task-contents">
    <%= form_with model: @category, id: 'new_tasks', class: 'new_tasks' do |f| %>
     <div class="task-field">
       <%= f.text_field :task %>
     </div>
     <div class="task-actions">
       <%= f.submit "+" %>
     </div>
    <% end %>
</div>

Wo ist fern: hier? Ich denke, einige Leute denken, dass bei Verwendung von form_with standardmäßig eine Ajax-Kommunikation durchgeführt wird, sodass bei Verwendung von form_with keine besondere Beschreibung erforderlich ist. Wenn Sie umgekehrt keine Ajax-Kommunikation verwenden möchten, setzen Sie local: true, um eine normale Anforderung zu stellen. Wenn Sie form_for verwenden, vergessen Sie nicht, die Option remote: true hinzuzufügen. Wenn Sie sich Sorgen machen, sollten Sie dies mit einem Entwicklungstool usw. überprüfen und es sollte data-remote = "true" sein.

Schritt 2 Beschreiben Sie den Controller

def create
      @category = Category.new(category_params)
      @category.save
      @categories = current_user.categories.all
end

Obwohl es sich um eine Beschreibung handelt, die eine allgemeine Speicherfunktion ausführt, wird die Beschreibung von @categories = current_user.categories.all beschrieben, da diese als Informationen an js übergeben werden muss.

Schritt 3 Schreiben Sie JavaScript in create.js.erb

Erstellen Sie die Datei create.js.erb, da der von remote: true zurückgegebene Inhalt so eingestellt ist, dass die Datei action name.js.erb anstelle von HTML geladen wird.

(function(){
  document.querySelector(".task-lists").innerHTML =  '<%= j(render 'categories/index', categories: @categories) %>'
  document.querySelector("#category_task").value = ''
})();

Ich schreibe den Inhalt von HTML mit .innerHTML neu.

'<%= j(render 'categories/index', categories: @categories) %>' Hier haben wir es in Schritt 2 definiert, @categories zu übergeben. document.querySelector("#category_task").value = '' Diese Beschreibung lässt das Eingabeformular leer.

Schließlich

Damit ist die asynchrone Buchungsfunktion abgeschlossen! Wichtig ist, dass jeder Prozess einfach und leicht zu verstehen ist, wenn Sie den Datenfluss der Ajax-Kommunikation verstehen. Da es ein Anfänger ist, würde ich es begrüßen, wenn Sie mir beibringen könnten, wenn es eine bessere Beschreibung gibt.

Wenn Sie Artikel wie asynchrones Löschen mögen, bitte ~ https://qiita.com/shantianchengyilang316/items/10ab2d84f6cfcfd29def

Recommended Posts

Buchungsfunktion implementiert durch asynchrone Kommunikation in Rails
[Ruby on Rails] Asynchrone Kommunikation der Posting-Funktion, Ajax
[Rails] Ich habe die Validierungsfehlermeldung mit asynchroner Kommunikation implementiert!
Implementieren Sie die Anwendungsfunktion in Rails
[Rails] Implementieren Sie die Image-Posting-Funktion
Ich habe versucht, die ähnliche Funktion durch asynchrone Kommunikation zu implementieren
Implementieren Sie die Anmeldefunktion in Rails einfach mit Name und Passwort (1)
Implementieren Sie die Anmeldefunktion in Rails einfach mit nur einem Namen und einem Passwort (2).
[Rails] Asynchrone Implementierung der Like-Funktion
Fügen Sie eine Suchfunktion in Rails hinzu.
Implementieren Sie eine einfache Anmeldefunktion in Rails
[Rails] Sprachposting-Funktion ~ Cloudinary, CarrierWave
Implementieren Sie die CSV-Download-Funktion in Rails
[Rails] Funktionseinschränkungen im Gerät (Login / Logout)
[Rails] Bildbeitrag von CarrierWave [AWS EC2]
Erstellen Sie die Authentifizierungsfunktion in der Rails-Anwendung mit devise
Implementieren Sie die Sternebewertungsfunktion mit Raty in Rails 6
So trennen Sie .scss nach Controller in Rails
Implementieren Sie Iterationen in View, indem Sie eine Sammlung rendern [Rails]
Einfache Benachrichtigungsfunktion in Rails (nur wenn befolgt)
Rails Refactoring Geschichte vor Ort gelernt
Buchungsfunktion implementiert durch asynchrone Kommunikation in Rails
Ich habe versucht, die ähnliche Funktion durch asynchrone Kommunikation zu implementieren
[Rails] Ich habe die Validierungsfehlermeldung mit asynchroner Kommunikation implementiert!
[Schienen] Kategoriefunktion
[Rails 6.0] Ich habe versucht, eine Tag-Suchfunktion zu implementieren (eine Funktion zum Eingrenzen nach Tags) [no gem]
Group_by in Rails
Schienen folgen der Funktion
Kommentarfunktion implementiert
[Rails] Benachrichtigungsfunktion
Implementieren Sie die Nachsuchfunktion in der Rails-Anwendung (where-Methode).
[Rails] Implementieren Sie die Registrierungs- / Löschfunktion für Kreditkarten in PAY.JP
[Ruby on Rails] Post-Score-Ranking-Funktion (gesamte Anzeige)
[Für Anfänger von Rails] Mehrfachsuchfunktion ohne Gem implementiert
[Ruby on Rails] Post-Bildvorschau-Funktion in Refile
Ich möchte eine Funktion in der Rails Console definieren