Как управлять корневым элементом с помощью конструктора в Active Model Serializer .10

Я называю AMS следующим образом:

  def me
      render json: current_user, serializer: UserProfile2Serializer, adapter: :json
  end

Я хотел бы получить версию этого для кэширования в нашей базе данных Postgres. Я сделаю это:

json = UserProfile2Serializer.new(user)

но мне нужно указать adapter: :json, Как мне это?

1 ответ

Попробуйте следующее ниже:

my_hash = ActiveModelSerializers::SerializableResource.new(user, serializer: UserProfile2Serializer, adapter: :json).as_json
render json: my_hash

Согласно документам:

За пределами контроллера правила точно такие же, как и для записей. Например:

render json: MyModel.new(level: 'awesome'), adapter: :json

будет сериализован так же, как

ActiveModelSerializers::SerializableResource.new(MyModel.new(level: 'awesome'), adapter: :json).as_json
Другие вопросы по тегам