Мне нужно запустить встроенные проверки в поле входа до фактического создания пользовательской записи, есть ли способ сделать это в Authlogic? Причина заключается в том, когда пользователь вводит новый логин, AJAX вызывается для проверки и видит, что логин в уникальном, действительном и т. Д. Как только это будет сделано, пользователь может ввести свой адрес электронной почты, чтобы заявить о входе в систему, это 2-х шаг обработать.Аутентификация проверки подлинности при входе в систему перед созданием действия
0
A
ответ
1
Модель пользователя использует проверки ActiveRecord, поэтому это не относится к Authlogic. Если вы хотите запустить проверку на модели, вы можете позвонить user.valid?
. Это вернет true
или false
в зависимости от того, действительна ли вся модель. Однако он также заполняет объект user.errors
, поэтому вы можете проверить, действительно ли данный атрибут.
Вот код, который использует RJS для создания AJAX. Но вы можете использовать что угодно и организовывать его, как хотите.
user = User.new(params[:user])
user.valid? # we aren't interested in the output of this.
error = user.errors.on(:login)
if error
page.insert_html :before, "user_login", content_tag(:span, error, :class => "error_message")
end
Вы можете быть заинтересованы в моей Mastering Rails Forms скринкаст серии, где я покрываю эту тему во 2-м эпизоде.
Спасибо, Райан, впоследствии я узнал, что Authlogic использует проверки ActiveRecord и в итоге использует плагин validate_attributes. Ваше предложение - отличная альтернатива, спасибо за обмен. – Bob