POST json to rails server

def create req = ActiveSupport::JSON.decode(request.body) if user = User.authenticate(req["email"], req["password"]) session[:user_id] = user.id render :json => "{\"r\": \"t\"}" + req else render :json => "{\"r\": \"f\"}" end end 

Il metodo ‘create’ è in un controller e mappato a “/ login”, sto impostando i tipi di contenuto corretti e accetto le intestazioni dal mio client di arricciatura. Ricevo sempre una risposta di stato http 422.

Eventuali suggerimenti?

Se stai inviando le intestazioni giuste, non avrai bisogno di fare “ActiveSupport :: JSON.decode” – i binari lo faranno per te.

Avrai bisogno di impostare le seguenti intestazioni nel tuo post.

 Content-Type: application/json Accept: application/json 

Un 422 significa Entità non processabile — generalmente che c’è stata una mancata convalida.

Dovresti essere in grado di avere. Se non puoi, le intestazioni non sono impostate correttamente.

 def create if user = User.authenticate(params["email"], params["password"]) session[:user_id] = user.id render :json => "{\"r\": \"t\"}" + req else render :json => "{\"r\": \"f\"}" end end