[英]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.