Egal, wie ich den unformatierten Teil dieser Anfrage formatiere, ich kann den folgenden Parsing-Fehler nicht vermeiden.
Ich habe eine Rails-API mit einer create-Methode, die die Spezifikation übergibt, um zu verdeutlichen, dass die Controller-Nachricht solide ist:
%Vor%Ich benutze Postman, um es zu POSTIEREN. Egal was ich versuche, ich bekomme den Fehler:
%Vor%Postman-Anfrage-Setup:
Ich habe es auch versucht:
%Vor% Code aus der Deklaration der Methode create und der starken Parameter in power_ups_controller.rb
:
Tut mir leid, etwas zu spät, um das zu beantworten, könnte aber jemand anderem helfen.
Alles, was Sie tun müssen, ist -
in Ihrem Anfrage-Header (in Postman oder was auch immer Client) hinzufügen
Content-Type = 'application/json'
Alternativ können Sie es auch mit curl (source) versuchen:
curl -X POST -H "Content-Type: application/json" -d '{"power_up": {
"name": "foo",
"description": "bar"
}
}' 127.0.01:3000/v1/power_ups.json
Wie @Tejas Patel sagte, es geht nur um Header. Aber anstatt sie explizit zu setzen, können Sie einfach:
Wechseln Sie im Anforderungsbereich zur Registerkarte body
. Setzen Sie das Optionsfeld raw
. Im unteren Textbereich geben Sie Ihren Körper ein:
{
"power_up": {
"name": "foo",
"description": "bar"
}
}
Wählen Sie dann in einer Dropdown-Liste rechts die Option JSON (application/json)
anstelle der Standardoption Text
. Dadurch werden die erforderlichen Header automatisch festgelegt. Das ist es - Sie können die "Senden" -Taste drücken.
Einfache Anführungszeichen (') sind in JSON nicht das zulässige Zeichenfolgebegrenzer : Ein String muss in doppelte Anführungszeichen (") gesetzt werden. Sie können Mach es mit dem Browser, denn sie sind String-Trennzeichen in Javascript. Du kannst das einfach in einer IRB-Sitzung replizieren
%Vor%Außerdem sollten Sie bei Ihrer Spezifikation die zweite Form verwenden, d. h.
%Vor%Tags und Links ruby-on-rails rest postman