#ruby-on-rails #login #validation
#ruby-on-rails #аутентификация #проверка
Вопрос:
В моем приложении rails 3 у меня есть форма регистрации пользователя. У меня есть запрос и проверка пароля для регистрации, однако, если пользователь подключается с использованием omniauth, я не могу получить их пароль, что подводит меня к моему вопросу. Как я могу сделать так, чтобы поле пароля не проверялось в определенных случаях?
Я знаю, что могу выполнить user.save(:validate => false), но это отменяет все проверки.
P.S. я смотрел эпизоды 235 и 236 railscasts, однако Райан Бейтс делает это с помощью Devise, и я делаю это с помощью моей собственной системы входа.
Ответ №1:
Вы можете написать свою собственную проверку пароля с проверкой, использует ли пользователь oauth.
Проверьте этот метод: validate(* аргументы и блокировка)
Ответ №2:
вы можете добавить условия для проверки в модели:
validates_presence_of :password, :unless => :account_from_omniauth?
предполагая, что вы также определяете метод
def account_from_omniauth?
true if //...your conditions
false
end