Für asynchrone Anfragen "Ein Mechanismus zum Vorbereiten eines Mechanismus zum Antworten auf die angeforderten Daten" wird durch Erstellen einer API realisiert.
Rails gibt standardmäßig HTML zurück. Es ist auch möglich, Daten im JSON-Format zurückzugeben, damit sie über JavaScript verarbeitet werden können.
Es gibt mehrere Möglichkeiten, APIs in Rails hinzuzufügen. Dieses Mal, wie man es dem Controller hinzufügt (Aktion).
Schreiben Sie, um JSON anstelle von HTML zurückzugeben.
Für Aktionen implementieren. Erstellen Sie in den folgenden Fällen Songcolor. Beschreiben Sie anschließend, in welchem Format die Anforderung zurückgegeben wird (Antwort).
<Beispiel A>#####_controller.rb (entsprechender Controller)
def create
@songcolor = Songcolor.create(color: params[:color], song_id: params[:song_id])
respond_to do |format|
format.json
end
end
▼▼▼ Details ▼▼▼ Mit einer Methode namens reply_to Sie können eine Antwort entsprechend dem Format erstellen. Dies entspricht der Implementierung von "Rückgabe im JSON-Format ermöglichen". In Zukunft muss zusammen mit dieser Datei eine JSON-Formatdatei "create.json.jbuilder" erstellt werden. Beschreiben Sie die zurückzugebenden Daten. Außerdem sollte der Dateiname mit dem Aktionsnamen übereinstimmen, damit er übereinstimmt. Dieses Mal entspricht es der Erstellungsaktion, also "create.json.jbuilder".
<Beispiel> Nehmen Sie den wichtigen Bereich des obigen Codes weiter auf
respond_to do |format|
format.json
end
Durch das Schreiben in der Aktion Geben Sie nach 〇〇 (Aktion) die Methode gemäß der obigen Anforderung nach reply_to zurück.
Sie können auch {} zum Rendern hinzufügen, um es wie unten gezeigt zu vervollständigen.
<Beispiel>#####_controller.rb
respond_to do |format|
format.json {
render json: { id: @user.id, name: @user.name }
}
end
ruby:<Beispiel> App/views/messages/show.json.jbuilder
json.content @message.content
=> { content: "@Nachrichteninhalt" }
jbuilder hat links einen Schlüssel und rechts einen Wert json.content ist der Schlüssel, @ message.content ist der Wert
Schreiben Sie in meiner App
Geben Sie den Namen, der der Aktion entspricht, in 〇〇 ein Erstellen Sie 〇〇.json.jbuilder.
Terminal
%App Name/views/messages/〇〇.json.jbuilder
Die Beschreibung im Inneren basiert auf dem zuvor beschriebenen Inhalt [Referenz](https://qiita.com/kusaharajiji/items/3b374c73c12233485feb#jsonjbuilder%E3%81%AE%E3%83%95%E3%82%A1%E3%82 % A4% E3% 83% AB% E3% 82% 92% E4% BD% 9C% E6% 88% 90% E3% 81% 99% E3% 82% 8B% E5% A0% B4% E5% 90% 88 ).
Es wird geladen, wenn die Zeichen "Rendered" und "jbuilder" sichtbar sind.
Das ist das Ende! !!
Der nachfolgende Fluss der asynchronen Kommunikation erstellt auch einen Artikel.
Der Mechanismus der API besteht darin, den Inhalt des Controllers zu beschreiben. Danach werden Informationen ausgetauscht. Ich frage mich, ob jbuilder über den Inhalt der Daten entscheidet und Ajax die Daten weitergibt. Ich habe nicht genug darüber gelernt, welche Art von Arbeit von wo nach wo ist.
--Beschreibung (Schlüssel und Wert), wenn nur der Controller verwendet wird, der die jbuilder-Datei nicht erstellt
Ich wollte mein Verständnis dafür vertiefen.
Der Ablauf der asynchronen Kommunikation wird vollständig ab der Einführung von jQuery [hier] beschrieben ([ttps: //kayoblog.org/programming_myapp_hidoukitushin/).
Recommended Posts