我有这样的authlogic设置
acts_as_authentic do |config|
config.login_field = 'email'
config.merge_validates_length_of_email_field_options :in => 5..50
config.validates_length_of_password_field_options = {:on => :update, :minimum => 4 }
config.validates_length_of_password_confirmation_field_options = {:on => :update, :minimum => 4}
end
我无法更新用户属性,因为密码和password_confirmation尝试在保存时验证并且它们是零。有没有办法暂时关闭验证,或者更好的解决方案?
答案 0 :(得分:0)
以下是它对我有用的方法:
在验证语句中添加一个条件,如下所示:
config.validates_length_of_password_field_options = {:on => :update, :minimum => 4, :if => :should_validate? }
然后向您的用户模型添加自定义should_validate?
功能。例如,你可以做
attr_accessor :updating_password
def should_validate?
updating_password or new_record?
end
这样,您可以在需要验证密码的任何时候在控制器中显式设置user.updating_password = true
,如果您不想进行任何验证,请保持原样。
(这是我的第一个答案,所以我希望它对你有所帮助。否则请不要犹豫,纠正我。)