Rails Password Validate только в определенных случаях - PullRequest
1 голос
/ 25 мая 2011

В моем приложении rails 3 есть форма регистрации пользователя. У меня есть запрос и проверка пароля для регистрации, однако, если пользователь подключается с помощью omniauth, я не могу восстановить его пароль, что приводит меня к моему вопросу. Как сделать так, чтобы поле пароля в некоторых случаях не проверялось?

Я знаю, что могу сделать user.save (: validate => false), но это снимает все проверки.

P.S. Я смотрел эпизоды Railscasts 235 и 236, однако Райан Бейтс делает это с Devise, и я делаю это с моей собственной системой входа в систему.

Ответы [ 2 ]

1 голос
/ 25 мая 2011

вы можете добавить условия к проверке в модели:

validates_presence_of :password, :unless => :account_from_omniauth?

при условии, что вы также определите метод

def account_from_omniauth?
  true if //...your conditions
  false
end
1 голос
/ 25 мая 2011

Вы можете написать свою собственную проверку пароля с проверкой, использует ли пользователь oauth.
Проверить этот метод: validate (* args, & block)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...