Как добавить настраиваемые поля устройства / получить доступ к контроллеру устройства по умолчанию

Я пытаюсь использовать драгоценный камень Devise в своем проекте. Это сработало, но у меня все еще есть проблема:

Я настроил устройство в своем приложении и сгенерировал представления, но добавил дополнительное поле в базу данных (имя пользователя). Итак, дело в том, что мне нужно это имя пользователя, но оно не сохраняется в базе данных, когда я создаю нового пользователя :/ Проблема, похоже, в контроллере, но я не знаю, как получить к нему доступ.

Скрывает ли Devise свои контроллеры? Могу ли я получить доступ к этому контроллеру и просто добавить нужное поле в параметры, например? Мне действительно нужно кодировать новый контроллер, который переопределит стандартный? Что я должен делать? и как?

Вы уже просмотрели документацию по разработке для сильные параметры? Они показывают, как разрешить дополнительные поля

Jay Dorsey 09.04.2019 19:30

Контроллеры Devise скрыты. Вы можете использовать решение Jay или попросить Devise явно сгенерировать контроллеры и настроить их: github.com/plataformatec/devise#configuring-контроллеры

Maxence 10.04.2019 00:25

Как сказано выше. Создайте контроллеры, а затем разрешите параметры.

uno 10.04.2019 01:23
Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Приемы CSS-макетирования - floats и Flexbox
Приемы CSS-макетирования - floats и Flexbox
Здравствуйте, друзья-студенты! Готовы совершенствовать свои навыки веб-дизайна? Сегодня в нашем путешествии мы рассмотрим приемы CSS-верстки - в...
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
0
3
159
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

См. документ: https://github.com/plataformatec/devise

Вы должны указать устройству сохранить дополнительные параметры в БД.

Ваш файл application_controller.rb выглядит так:

 class ApplicationController < ActionController::Base
    protect_from_forgery with: :exception
    before_action :configure_permitted_parameters, if: :devise_controller?

    protected

    def configure_permitted_parameters
        devise_parameter_sanitizer.permit(:sign_up, keys: [:username])
    end
  end

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