Поскольку вы приостановили валидацию на основе Authlogic, вы можете добиться этого с помощью стандартной валидации модели Rails, например:
validates_presence_of :password_confirmation, :if => :password_required?
, где password_required?
- это необязательный метод модели, который проверяет, хотите ли вы этопроверка для данного сценария.
ОБНОВЛЕНИЕ
Поскольку кажется, что опция c.require_password_confirmation=false
означает, что атрибут password_confirmation
больше не создается автоматически, тогда вам нужно обратитьсярешение немного по-другому.Создайте виртуальный атрибут вручную и пользовательскую проверку для конкретного случая обновления профиля.Как то так:
class User < ActiveRecord::Base
attr_accessor :password_confirmation
validate do |user|
unless user.new_record?
user.errors.add :password, "is required" if self.password.blank?
user.errors.add :password_confirmation, "is required" if self.password_confirmation.blank?
user.errors.add_to_base, "Password and confirmation must match" if self.password != self.password_confirmation
end
end
end