我按照Devise wiki上的说明操作,允许用户在不提供密码的情况下编辑他们的帐户:
我的表单中仍然有password和password_confirmation字段。我只是不希望用户输入他们当前的密码。使用update_without_password函数时,如何对这两个字段强制进行验证?
def configure_account_update_params
devise_parameter_sanitizer.for(:account_update) << [:first_name, :last_name, :email, :locale, :time_zone, :phone, :password, :password_confirmation]
end
def update_resource(resource, params)
resource.update_without_password(params)
end
答案 0 :(得分:1)
使用update_without_password函数时,如何对这两个字段强制进行验证?
我认为你应该做的是创建一个custom validation method
并仅为更新方法调用它。 。你可以通过这样的方式来实现它:
#user.rb
class User < ActiveRecord::Base
validate :validate_password_fields, on: :update
def validate_password_fields
errors.add(:base, "Please enter correct values") if password.blank? || password_confirmation.blank? || (password != password_confirmation)
end
end