2016-12-22 110 views
4

我最近開始用rails 5開發REST API。我正在嘗試通過API調用來完成用戶原始操作。我爲用戶建立了一個基本的設計。用戶註冊通過API設計

在我的路線我有這樣的:

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

我創建了兩個獨立的控制器sessions_controller和registrations_controller覆蓋設計方法,並使其接受JSON格式。

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個問題。 如何格式化JSON,以便我的設計控制器識別它並將其保存到數據庫。 而我的第二個問題是我如何傳遞CSRF令牌。一個小例子真的可以幫助我。 在此先感謝。

+0

您發佈的數據是不是有效的JSON將字符串括起來。您的配置似乎沒問題,但我認爲如果您傳遞有效的JSON,控制器將開始識別它。 – 31piy

回答

1

您的JSON是不是valid.You需要用雙引號

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