Authlogic, не может обновить пользователя из-за проверки - PullRequest
0 голосов
/ 31 января 2011

У меня автоматическая настройка как таковая

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 пытаются получить подтверждение при сохранении, и они равны нулю.Есть ли способ временно отключить проверки или лучшее решение?

1 Ответ

0 голосов
/ 02 февраля 2011

Вот как это работает для меня:

Добавьте условие к вашим утверждениям, например:

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 в вашем контроллере в любое время, когда вы хотите, чтобы пароль был проверен, и оставить его как есть, если вы не хотите никакой проверки.

(Это мой первый ответ, поэтому я надеюсь, что он будет полезен для вас. В противном случае, не стесняйтесь меня поправлять.)

...