Аутлогическая и условная валидация - PullRequest
1 голос
/ 28 июня 2010

Есть ли возможность выполнить условную валидацию в модели пользователя Authlogic, которая использует валидацию внутри блока acts_as_authentic в зависимости от некоторых условий? Я пытаюсь реализовать многоэтапную регистрационную форму, описанную в Railscast 217 Райана Бейтса с authlogic.

1 Ответ

3 голосов
/ 29 июня 2010

Да, с помощью authlogic можно установить условные проверки. В вашей пользовательской модели вы можете иметь:

class User < ActiveRecord::Base

acts_as_authentic do |config|
  config.merge_validates_format_of_login_field_options {:if => :do_validation}
end

где: do_validation - это метод в User, который возвращает true или false в зависимости от определенного вами условия. Есть и другие крючки, которые вы можете использовать. См. http://www.rubydox.net/class/authlogic/2.1.3/Authlogic::ActsAsAuthentic::Login::Config для информации, связанной с этим примером. Вы можете сделать аналогичные вещи для поля пароля.

Пожалуйста, обратите внимание, что приведенный выше пример кода взят из памяти, поскольку я не в том месте, где я могу сослаться на свой собственный источник, в котором я сделал именно это. Завтра я проверю, когда вернусь на работу, и при необходимости исправлю.

ОБНОВЛЕНИЕ Я подтвердил, что мой пример кода верен. Также может быть полезно отметить, что любой из стандартных параметров RoR для validates_format_of может быть объединен с этим конкретным параметром конфигурации authlogic. http://api.rubyonrails.org/classes/ActiveRecord/Validations/ClassMethods.html#M001401

...