2016-12-22 13 views
4

私は最近、レール5でREST APIを開発し始めました。私はAPIコールを介してユーザの原動作をしようとしています。私はユーザーのために基本的な工夫をしました。私は、この持っている私のルートでAPIを使用したDeviseのユーザ登録

Rails.application.routes.draw do 
    devise_for :users, :controllers => {sessions: 'sessions', registrations: 'registrations'} 
end 

を私は工夫メソッドをオーバーライドして、JSON形式を受け入れる作るために2つの別々のコントローラのsessions_controllerとregistrations_controllerを作成しました。

class RegistrationsController < Devise::RegistrationsController 
    respond_to :json 
end 

class SessionsController < Devise::SessionsController 
    respond_to :json 
end 

私は、次のデータを渡してユーザーを登録しようとしています:

{ 
    user: { 
     email: [email protected], 
     password: password, 
     password_confirmation: password 
    } 
} 

私は、ステータス200を取得するが、私のレールのサーバに私が取得しています次のエラー:

Started POST "/users" for 23.233.9.94 at 2016-12-22 08:22:11 +0000 
Processing by RegistrationsController#create as */* 
    Parameters: {"Payload: { \r\n user: {\r\n  email: [email protected],\r\n  password: password,\r\n  password_confirmation: password\r\n }\r\n}"=>"[FILTERED]"} 
    (0.2ms) begin transaction 
    (0.1ms) rollback transaction 
Completed 200 OK in 5ms (Views: 0.2ms | ActiveRecord: 0.3ms) 

基本的に2つの質問があります。 私のdeviseコントローラがJSONを認識してデータベースに保存するように、JSONをどのようにフォーマットしますか? 私の2番目の質問は、CSRFトークンをどのように渡すかです。少しの例が本当に私をここで助けてくれるでしょう。 ありがとうございます。

+0

二重引用符で文字列を囲む必要があります。あなたの設定は大丈夫だと思われますが、有効なJSONを渡すとコントローラは認識を開始します。 – 31piy

答えて

1

あなたのJSONがvalid.Youではありませんが、あなたがポストされたデータが有効なJSONではありません

{ 
    "user": { 
     "email": "[email protected]", 
     "password": "password", 
     "password_confirmation": "password" 
    } 
} 
関連する問題