Я работаю над плагином, который должен добавлять данные в сериализатор пользователя. Всё работает!
Но мне нужно добавлять эти данные в сериализатор пользователя только для сотрудников и текущего пользователя.
Однако… возможно, стоит отступить: мне, пожалуй, нужна эта информация только на странице профиля пользователя. Может быть, стоит разместить её в другом месте?
add_to_serializer(:user, :manager_status) {
# TODO: включить только для текущего пользователя и сотрудников
return object.manager_status
}
Сейчас я отображаю это на странице профиля пользователя. Я хотел бы узнать, как создать отдельную страницу профиля, где будет только эта информация. Ссылки на материалы, посвящённые этому, были бы очень кстати.
Вам придётся создать новый маршрут и убедиться, что к нему не имеют доступа все, кроме сотрудников и текущего пользователя. Это, вероятно, гораздо сложнее, чем просто сериализовать данные в том месте, где вы находитесь.
Я думаю, это можно сделать примерно так:
add_to_serializer(:user, :manager_status) {
return object.manager_status if object.admin || object.staff
}
Сходу можно сказать, что, возможно, придётся немного потрудиться, чтобы получить объект текущего пользователя и проверить совпадение.
Да. Я не могу понять, как получить текущего пользователя. Мне кажется, что то, что вы предложили, добавит его, если пользователь (но не текущий) является администратором.