簡體   English   中英

Rails:密碼不能為空,BCrypt

[英]Rails: password can't be blank, BCrypt

我有一個用戶 model

class User < ApplicationRecord
  include ApplicationConstants

  enum role: { admin: 0, waiter: 1, chef:2 }

  has_secure_password

  validates :name, :role, presence: true, on: :create
  validates :email, uniqueness: true, format: EMAIL_REGEX
  validates :password, length: { minimum: 8 }, allow_blank: true
end

controller 定義為:

before_action :set_user, only: [:show, :update, :destroy]

def update
  if @user.update(user_params)
    render json: @user
  else
    render json: @user.errors, status: :unprocessable_entity
  end
end

def set_user
  @user = User.find(params[:id])
end

def user_params
  params.permit(:name, :role, :email, :password, :password_confirmation)
end

問題是以下測試用例失敗

test "should update user" do
  put user_url(@user), params: { name: @user.name }
  assert_response 200
end

錯誤是: {"password":["can't be blank"]}

我嘗試了其他答案,例如此處列出的答案,但沒有用

正如馬特指出的那樣,這是因為摘要屬性為零。 我將它添加到固定裝置中,現在它可以工作了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM