has_secure_password密码不能为空白轨道4.1

时间:2014-12-04 11:11:48

标签: ruby ruby-on-rails-4

我们实施了" 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

向/ users发送帖子请求以创建一个,我们得到的密码不能为空白&#34;错误。 另外,我们试图显示user_params的内容,除密码和password_confirmation外,所有的params都在那里。 有什么想法吗?

1 个答案:

答案 0 :(得分: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"}}

在开始时忘记用户密钥......