Die Parameter, die ich in Rails erhalten habe, waren etwas anders als ich erwartet hatte

API-Modus.

Wenn ich Axios zum POSTEN der Aktion verwendet habe, während ich Rails als API verwendet habe, habe ich sie als Parameter in einer anderen Form erhalten, als ich es auf der Rails-Seite erwartet hatte.

Vorderseite.ts


  axios.post('/api/v1/users', {id: user.id})

zurück.rb


class Api::V1::UsersController < ApplicationController
  def index
  end
end

Es wurde erwartet, dass der gesendete Wert "{" id "=> 1}" ist.

Im Protokoll war es "{" id "=> 1," user "=> {" id "=> 1}}".

Dies scheint eine Spezifikation auf der Rails-Seite zu sein.

Wenn Sie config.wrap_parameters in Ihren Initialisierungseinstellungen aktivieren oder wenn Ihr Controller wrap_parameters aufruft, können Sie das Stammelement Ihrer JSON-Parameter sicher entfernen. Standardmäßig wird dieser Parameter dupliziert und mit einem Schlüsselnamen versehen, der dem Controller-Namen entspricht. Daher kann die obige JSON-Anforderung wie folgt geschrieben werden: { "name": "acme", "address": "123 Carrot Street" } Wenn die Daten an CompaniesController gesendet werden, werden sie wie unten gezeigt mit dem Schlüssel: company verpackt. { name: "acme", address: "123 Carrot Street", company: { name: "acme", address: "123 Carrot Street" } }

Rails im API-Modus ist jetzt initialisiert

wrap_parameters.rb


ActiveSupport.on_load(:action_controller) { wrap_parameters format: %i[json] }

Es scheint, dass dies funktioniert, weil es gibt.

Dies ist jedoch bei einer GET-Anforderung nicht der Fall.

Recommended Posts

Die Parameter, die ich in Rails erhalten habe, waren etwas anders als ich erwartet hatte
[Rails] Ich möchte Daten verschiedener Modelle in einem Formular senden
Ich habe versucht, die Sitzung in Rails zu organisieren
(Capistrano) Nach der Bereitstellung wird ein Fehler in der Produktionsumgebung angezeigt.
[Rails] Ich möchte das Linkziel von link_to auf einer separaten Registerkarte anzeigen
Ich möchte ein kleines Symbol in Rails verwenden
[Ruby / Rails] Legen Sie einen eindeutigen (eindeutigen) Wert in der Klasse fest
Ich möchte eine Funktion in der Rails Console definieren
Ich möchte ein Formular erstellen, um die Kategorie [Schienen] auszuwählen
Ich bin auf einen Typen mit zwei Punkten in Rails gestoßen
Ich war verwirrt, weil es eine Aufteilung im Array gab
[Lernaufzeichnung] Ich habe die aktuelle Zeit mit Ruby erhalten und für jedes Mal eine andere Begrüßung ausgegeben.
Was ist, wenn ich eine finally-Klausel in die Try-with-Resources-Syntax schreibe?
Ich habe versucht, den Weihnachtsbaum in einem Lebensspiel zu beleuchten
Daten sortieren Absteigend, aufsteigend / Schienen
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 1) erstellt.
Ich habe kürzlich eine JS-App in der gemunkelten Dart-Sprache erstellt
Ich habe eine Antwortfunktion für die Rails Tutorial-Erweiterung (Teil 5) erstellt:
Ich sehe keinen Fehler bei der Installation des Rails-Bundles ... der Lösung
Ich habe den Ablauf bis zur Implementierung von simple_calendar in Ruby on Rails zusammengefasst.