正如@ryanb 所说,validates_presence_of :password
在 master 中是固定的,但不会被反向移植。该修复程序还清除了Password digest can't be blank.
消息。
因此,在模型中,您仍然需要添加:
validates :password, presence: true, on: :create
正如@henrique-zambon 所说,没有必要添加validates_presence_of :password_confirmation
. 要突出显示密码确认字段,而不显示其他消息,请在显示错误后在该字段上添加错误。
然后,要隐藏多余的Password digest can't be blank.
消息,您只需在表单顶部将其删除即可。
= form_for @user do |f|
- if @user.errors.any?
- @user.errors.delete(:password_digest)
#error_explanation
%h2= "#{pluralize(@user.errors.count, "error")} prohibited this user from being saved:"
%ul
- @user.errors.full_messages.each do |msg|
%li= msg
- @user.errors.add(:password_confirmation) if @user.errors.include?(:password)