Это на самом деле типичное поведение для приложения Rails и очень мало общего с Devise.
Когда вы выполняете запрос POST, вы отправляете форму в маршрут сбора в этом случае /users
- с неидемпотентным действием. Ответ на запрос POST обычно представляет собой перенаправление на созданный ресурс или форму, отображаемую снова с сообщениями об ошибках.
На самом деле вы не можете снова попасть на эту конкретную «страницу», не отправив точно такой же запрос POST. Запрос POST не должен повторяться, пока пользователь не отправит форму.
Если в этот момент вы нажмете кнопку refre sh в браузере, он отправит запрос GET по тому же пути, который является идемпотентным глаголом, и ваш сервер rails не может - и не должен отвечать на этот запрос GET путем повторного рендеринга этой формы с ошибками, поскольку его не тот же ресурс, и rails НЕ будет переносить параметры из этого предыдущего запроса POST.
Этот тот же принцип применяется к другим неидемпотентным HTTP-глаголам PUT, PATCH и DELETE.
Если это действительно проблема для вашего приложения, вы можете добавить прослушиватель JavaScript для события window.unload, чтобы предупредить пользователей перед обновлением стр.