Вот как это работает для меня:
Добавьте условие к вашим утверждениям, например:
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
в вашем контроллере в любое время, когда вы хотите, чтобы пароль был проверен, и оставить его как есть, если вы не хотите никакой проверки.
(Это мой первый ответ, поэтому я надеюсь, что он будет полезен для вас. В противном случае, не стесняйтесь меня поправлять.)