У меня есть существующее приложение в производстве, где мы добавили новые обязательные поля в запись пользователя. В результате функция забытых паролей терпит неудачу. Я считаю, что сбой происходит в следующем методе в 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, чтобы изменить фиктивные значения на пустые.