Meine Fragen sind sehr ähnlich zu Rails 5 API POST Create params empty, aber die Antworten sind nicht hilfreich. Params wird gesetzt, aber die Nutzdaten der Anfrage gehen verloren.Rails 5 POST für Erstellen Aktion hat leere Params
[1] pry(#<Api::RegistrationsController>)> params
=> <ActionController::Parameters {"format"=>"json", "controller"=>"api/registrations", "action"=>"create"} permitted: false>
[2] pry(#<Api::RegistrationsController>)> params.require(:data)
ActionController::ParameterMissing: param is missing or the value is empty: data
Anfrageheaders
Host: test.lvh.me:3000
Connection: keep-alive
Content-Length: 1038
Accept: application/vnd.api+json
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/56.0.2924.87 Safari/537.36
Origin: http://test.lvh.me:4200
Content-Type: application/vnd.api+json
Referer: http://test.lvh.me:4200/register/individual-academics
Accept-Encoding: gzip, deflate
Accept-Language: en-US,en;q=0.8
Raw Payload
{"data":{"attributes":{"first-name":"Test","last-name":"User","email":"[email protected]"}}}
-Update Wenn ich die gleiche App Rails 4 aufgebaut, das funktioniert perfekt ohne Änderungen in der Nutzlast, so sieht es aus Es ist etwas mit der Art, wie Rails 5 Anfragen bearbeitet, möglicherweise?
Update 2 ActiveSupport::JSON.decode(request.body.string)
parst korrekt in einen Hash, wird aber nicht in den params enthalten. Ich kann durchaus params.merge tun! aber das fühlt sich an wie ein schlechter Ruf.
request.format ist: #<Mime::Type:0x007f89b6c63df0 @hash=2978300210816280263, @string="application/json", @symbol=:json, @synonyms=["text/x-json", "application/jsonrequest"]>
Bitte setzen Sie nicht die Antwort auf die Frage. Stack Overflow ist kein Forum; Sie können die Antwort in eine Selbstantwort setzen. Tatsächlich hast du es schon getan. Es wird nichts hinzugefügt, wenn man es auch in die Frage einfügt – Justin