首页 > 解决方案 > Ruby API:虚拟密码字段的验证不适用于 has_secure_password

问题描述

这是我的模型:

class User < ApplicationRecord
  before_save { self.email = email.downcase }

  validates :name, presence: true, length: { maximum: 50 }
  validates :email, presence: true, length: { maximum: 255 },
                    format: { with: URI::MailTo::EMAIL_REGEXP },
                    uniqueness: { case_sensitive: false }
  has_secure_password
  validates :password, presence: true, length: { equal_to: 6 }
end

我在控制器中的强大参数:

def user_params
  params.require(:user).permit(:name, :email, :password)
end

但是当我提出请求时,api会产生:

{
  "password": [
    "can't be blank",
    "can't be blank"
  ]
}

两次。这是为什么?

标签: ruby-on-railsactiverecord

解决方案


推荐阅读