Дополнительные поля регистрации в devise (rails) не заполняются после неудачной отправки - PullRequest
5 голосов
/ 15 марта 2019

Я использую devise в рельсах как свою пользовательскую систему.

У меня есть несколько дополнительных полей при регистрации, например - :first_name, а также адрес электронной почты и пароль.

Я использую devise_parameter_sanitizer в контроллере приложения и позволяю сохранить :first_name. Это все работает правильно, и пользователь может зарегистрироваться со всеми дополнительными полями.

Однако у меня есть проблема, когда форма недействительна (например, пароль и подтверждение пароля не совпадают), пользователь отправляет форму с заполненным полем первого имени. Когда неверная форма возвращает данные полей первого имени был потерян.

Как мне сделать так, чтобы devise оставлял эти дополнительные поля регистрации заполненными после неверной отправки, в противном случае пользователь должен будет повторно вводить данные.

Спасибо.

Редактировать - все заботятся о контроллере. И форма - та, которая идет с разработкой плюс некоторые дополнительные поля. Я добавил это в контроллер приложения в качестве действия перед сохранением дополнительных параметров:

  def configure_permitted_parameters
    devise_parameter_sanitizer.permit(:sign_up) do |u|
      u.permit(
        :email, :password, :first_name
      )
    end
  end

Вид такой же, как у разработанного, но с дополнительными входами. Дополнительные поля сохраняются нормально, они просто стираются при возвращении неверного значения, как указано выше. Еще раз спасибо.

1 Ответ

0 голосов
/ 15 марта 2019

В вашем методе #create в контроллере регистрации вам нужно иметь @user = User.new(...), затем render :new.И, по вашему мнению (форма), вам нужно что-то вроде form_for @user (если нет, также нужно @user = User.new в вашем #new методе в вашем контроллере)

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