gpt4 book ai didi

ruby-on-rails - Authlogic:如果密码正在更新,我如何仅验证密码?

转载 作者:行者123 更新时间:2023-12-04 06:33:51 24 4
gpt4 key购买 nike

我在 Rails 3 中使用 authlogic。我的用户模型中有这个:

 validates :last_name, :presence => true

acts_as_authentic do |c|
c.validates_length_of_password_field_options = {:minimum => 7}
end

然后我有一个更新用户名的 Controller 操作:
  def update_name
if @current_user.update_attributes(params[:user])
flash[:success_name] = true
redirect_to edit_user_via_account_settings_path
else
render 'edit_user_via_account_settings'
end
end

如果用户输入一个空白的姓氏并尝试使用此 Controller 操作更新他们的姓名,@current_user 模型正确地在姓氏上有错误,但在密码上也有错误(密码必须至少为 7 个字符)。如果密码正在更新,我如何仅验证密码?

最佳答案

您需要使用 merge_validates_* 配置方法而不是 validates_* 方法。前者保留条件(如忽略空白密码),后者覆盖它们。那应该清除一切。并且不要在 merge_* 方法上使用赋值。

a.merge_validates_length_of_password_field_options :minimum => 7 

关于ruby-on-rails - Authlogic:如果密码正在更新,我如何仅验证密码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5074131/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com