Пользовательские атрибуты пользователя с devise_token_auth
Я создал новый API, используя rails / edge, и я использую devise с devise_token_auth, который сгенерировал мне пользовательскую модель.
Мой вопрос заключается в следующем: после миграции и добавления новых атрибутов в модель User, как я могу вернуть это в ответе JSON, который в настоящее время генерируется devise_token_auth?
1 ответ
Это то, что вам нужно, чтобы разрешить настраиваемые атрибуты для модели Devise (например,
User
модель)
class ApplicationController < ActionController::Base
before_action :configure_permitted_parameters, if: :devise_controller?
protected
def configure_permitted_parameters
# for user account creation i.e sign up
devise_parameter_sanitizer.permit(:sign_up, keys: [:first_name, :last_name])
# for user account update
# where bank_name and bank_account are nested attributes in the User model
devise_parameter_sanitizer.permit(:account_update, keys: [:first_name, :last_name, bank_attributes: [:bank_name, :bank_account]])
end
end
Как уже упоминалось в комментарии выше. Пока что мое лучшее решение - создать отдельную модель UserDetails, сериализовать ее, а затем выполнить отдельный вызов после аутентификации для заполнения дополнительных пользовательских данных.
Который действительно кажется довольно хорошим, поскольку он поддерживает чистоту аутентификации.