设计前端有角度js的导轨

时间:2015-01-18 13:31:18

标签: ruby-on-rails angularjs devise

$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

为什么会这样?

1 个答案:

答案 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'}
   })