$http({
method:'POST',
url: '/users',
data: JSON.stringify(user),
headers: {'Content-Type':'application/json'}
})
我正在使用上述方法使用devise注册新用户。
控制台上没有错误,但我得到rollback_transaction
,我无法弄清楚发生了什么。
Started POST "/users" for 127.0.0.1 at 2015-01-18 19:10:59 +0545
Processing by Devise::RegistrationsController#create as HTML
Parameters: {"email"=>"my_user1@gmail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "registration"=>{"email"=>"my_user1@gmail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]"}}
(0.2ms) begin transaction
(0.1ms) rollback transaction
为什么会这样?
答案 0 :(得分:0)
这种情况正在发生,因为Devise::RegistrationsController
需要{ "user" : {"email"=>"my_user1@gmail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]" }
形式的参数。在你的情况下(在RegistrationsController中创建动作)尝试创建新用户时,它会将空哈希传递给User.create
方法。
使用密钥user
和值'user'将您的http数据包装在另一个哈希中。像这样:
$http({
method: 'POST',
url: '/users',
data: JSON.stringify({ user: user }),
headers: {'Content-Type':'application/json'}
})