2014-12-04 59 views
0

我们在rails 4.1中实现了用于认证的“has_secure_password”。下面是代码:has_secure_password密码不能空白rails 4.1

# == Schema Information 
# 
# Table name: users 
# 
# id    :integer   not null, primary key 
# name   :string(255) 
# firstname  :string(255) 
# created_at  :datetime 
# updated_at  :datetime 
# password_digest :string(255) 
# lastname  :string(255) 
# 

(user.rb)

class User < ActiveRecord::Base 
    has_secure_password 
end 

(user_controllers.rb)

class UsersController < ApplicationController 
    def create 
    u = User.new(user_params) 
    if u.save 
     render json: u, status: 200 #, location: u 
    else 
     render json: {errors: u.errors.messages}, status: 422 
    end 
    end 

    private 
    def user_params 
    params.require(:user).permit(:name, :firstname, :lastname, :password, :password_confirmation) 
    end 
end 

当发送POST请求/用户创建一个,我们是得到“密码不能为空”的错误。 此外,我们试图显示user_params的内容,除密码和password_confirmation之外,所有参数都在那里。 有什么想法?

+0

你可以告诉你要发送的JSON? – Mohamad 2014-12-04 11:15:42

+0

我们发出这样的: { “名”: “戴夫”, “名字”: “抢”, “姓氏”: “伯特”, “密码”: “SuperPass的”, “password_confirmation”:“SuperPass的“} – Shellu 2014-12-04 11:17:32

+0

你可以包含你的表单吗? – 2014-12-05 01:16:55

回答

0

我们发现了这个问题,有些日子可能会帮助别人。 我们发送此JSON:

{"name":"Dave", "firstname":"Rob", "lastname":"Bert", "password":"superpass", "password_confirmation":"superpass"} 

框架期待这样的:

{ "user" : {"name":"Dave", "firstname":"Rob", "lastname":"Bert", "password":"superpass", "password_confirmation":"superpass"}} 

根本都忘了在beginnning用户密钥...