Пользовательский ответ Json с использованием сериализаторов активных моделей - PullRequest
0 голосов
/ 05 августа 2020

Я получаю ответ от использования настраиваемых сериализаторов, например:

render json: @required_user, :serializer => CustomuserSerializer

Я хочу Json что-то вроде этого:

render json: { status: 'Success', message: "User Created Successfully", data: @required_user, :serializer => CustomuserSerializer }

Как я могу этого добиться? Поискал в stackoverflow, чтобы найти решения, которые не работают ..

1 Ответ

2 голосов
/ 05 августа 2020

Напишите общий метод для достижения успеха, как показано ниже, и его можно использовать везде.

    def render_success_response(data: nil, message: nil, serializer_options: {})
      resp_data = { status: 'success' }
      resp_data[:message] = message if message
    
      # Serialize the resource
      resp_data[:data] = ActiveModelSerializers::SerializableResource.new(data, serializer_options)if data
    
      render json: resp_data, status: 200
    end
  • данные - это отношение активной записи или объект активной записи, который должен быть сериализованный. В вашем случае - @required_user
  • сообщение - в ответ будет отправлено сообщение об успешном завершении. здесь - «Пользователь успешно создан»
  • serializer_options - требуются параметры сериализации. Нравится serializer, each_serializer, include и другие варианты.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...