Rails devise reset password failed, если запись пользователя содержит недопустимые данные

У меня есть существующее приложение в производстве, где мы добавили новые обязательные поля в запись пользователя. В результате функция забытых паролей терпит неудачу. Я считаю, что сбой происходит в следующем методе в recoverable.rb

  # Update password saving the record and clearing token. Returns true if
  # the passwords are valid and the record was saved, false otherwise.
  def reset_password(new_password, new_password_confirmation)
    if new_password.present?
      self.password = new_password
      self.password_confirmation = new_password_confirmation
      save
    else
      errors.add(:password, :blank)
      false
    end
  end

Новые атрибуты не могут быть сгенерированы механически. Только сам пользователь будет знать правильные значения. Кто-нибудь знает, как обойти эту проблему?

Единственная идея, которую я придумал до сих пор, заключается в следующем:

использовать сценарий грабли для заполнения нового поля со значениями, которые, как я знаю, никогда не произойдут в реальной жизни, но будут приняты правилом проверки модели при входе пользователя в систему, обнаружит, содержит ли пользователь запись неверных данных и заставляет их выполнять обновление. В форме редактирования пользователя я бы использовал некоторый javascript, чтобы изменить фиктивные значения на пустые.
1
задан 13 August 2018 в 14:34

0 ответов

Другие вопросы по тегам:

Похожие вопросы: