2017-03-24 5 views
0

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"]>

+0

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

Antwort

1

Um dies zu beheben, müssen Sie die folgende Zeile in config/initializers/mime_types.rb hinzuzufügen:

Mime::Type.register "application/vnd.api+json", :json 
Verwandte Themen