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

avatar
timpone
8 апреля 2018 в 01:55
161
1
1

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

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

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

json = UserProfile2Serializer.new(user)

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

Источник

Ответы (1)

avatar
fongfan999
8 апреля 2018 в 02:12
0

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

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