2014-12-04 96 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用戶密鑰...