我最近开始使用rails 5开发REST API。我正在尝试通过API调用执行User粗体操作。我为用户设置了一个基本的设计。
在我的路线中,我有这个:
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: me@gmail.com,
password: password,
password_confirmation: password
}
}
我获得状态200.但是在我的rails服务器中我收到以下错误:
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: me@gmail.com,\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 :(得分:4)
您的JSON无效。您需要用双引号括起字符串
{
"user": {
"email": "me@gmail.com",
"password": "password",
"password_confirmation": "password"
}
}