RoR: сериализованные данные в построенном объекте ответа - PullRequest
1 голос
/ 18 февраля 2020

Я создаю Rails API, и у меня есть этот метод контроллера, который отвечает пользовательским объектом:

class V1::AppInitController < ApplicationController
  def init
    json_response({
      user: UserSerializer.new(current_user, {}).as_json,
      categories: ActiveModel::Serializer::CollectionSerializer.new(Category.all, each_serializer: CategorySerializer).as_json,
      last_seen_products: current_user.last_seen_products
    })
  end
end

Так как здесь я создаю пользовательский объект, я должен вручную вызвать сериализаторы если я хочу, чтобы они были применены. Можно ли настроить мои контроллеры так, чтобы сериализаторы применялись автоматически?

В итоге я хочу написать свой метод таким образом, автоматически сериализовавшись:

class V1::AppInitController < ApplicationController
  def init
    json_response({
      user: current_user,
      categories: Category.all,
      last_seen_products: current_user.last_seen_products
    })
  end
end

1 Ответ

0 голосов
/ 18 февраля 2020

измените ваш метод инициализации, как показано ниже, и попробуйте его.

class V1::AppInitController < ApplicationController
 def init
  json_response({
    user: UserSerializer(current_user),
    categories: CategorySerializer(Category.all),
    last_seen_products: current_user.last_seen_products
  })
 end
end

Я надеюсь, что это работает для вас.

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