json post to devise cause 422/Unprocessable entity

kol*_*osy 3 ruby-on-rails devise angularjs

我正在使用角度并发布到RoR后端,并设计了auth.当我提交新用户进行创建时,我得到以下内容:

Started PUT "/api/user" for 127.0.0.1 at 2013-11-19 11:38:13 -0600
Processing by Devise::RegistrationsController#create as JSON
  Parameters: {"user"=>{"email"=>"alex@someemail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "first_name"=>"alex", "last_name"=>"p"}, "registration"=>{"user"=>{"email"=>"alex@someemail.com", "password"=>"[FILTERED]", "password_confirmation"=>"[FILTERED]", "first_name"=>"alex", "last_name"=>"p"}}}
   (0.2ms)  BEGIN
  User Exists (0.8ms)  SELECT 1 AS one FROM "users" WHERE "users"."email" = 'alex@someemail.com' LIMIT 1
   (0.2ms)  ROLLBACK
Completed 422 Unprocessable Entity in 128ms (Views: 0.2ms | ActiveRecord: 7.4ms)
Run Code Online (Sandbox Code Playgroud)

用户模型:

class User < ActiveRecord::Base
  # Include default devise modules. Others available are:
  # :token_authenticatable, :confirmable,
  # :lockable, :timeoutable and :omniauthable
  devise :database_authenticatable, :registerable,
         :recoverable, :rememberable, :trackable, :validatable
  attr_accessible :first_name, :last_name, :email, :password, :password_confirmation, :remember_me, :last_check

end
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚发生了什么.我认为这是我正在发送(或不发送?)的参数,但似乎一切都在那里.

Mar*_*ubé 10

我对日志的第一个想法是,已经存在具有相同电子邮件的用户.否则,您可以使用httpclient(chrome中的curl或Postman或chrome中的Restclient)来查看响应是什么.

我对Angular不是很熟悉,但如果你有权访问http响应,只需在控制台中输出即可.它应该告诉你验证错误.

  • 叹.`"{"errors":{"password":["太短(最小为6个字符)"]}}"`.我甚至没有想到它向客户发送了冗长的回复. (7认同)