2016-08-08 3 views
2

У меня есть сериализатору какобертка атрибуты под заказ ключа активной модели сериализатором

class UserSeriazer < ActiveModel::Serializer 
    attributes :name, :email 
end 

и JSON производства, как показано ниже

{ 
    name: 'james' 
    email: '[email protected]' 
} 

как я могу обернуть деталь выше JSon под персонализированный ключ сказать customer

{ 
    customer: 
    { 
     name: 'james' 
     email: '[email protected]' 
    } 

} 

Я пытаюсь что-то предпринять как атрибут: name,: email, key:: customer, но не работает. заранее спасибо.

ответ

0

Вы можете попробовать добавить корневой ключ к вашему файлу serializer. в UserSerializer, добавьте это

attributes :name, :email, root: 'customer' 

Я не уверен, как это будет работать. Вы можете пойти со следующим, если это не сработает.

Лучший способ - создать новый сериализатор CustomerSerializer. Это наследуется от UserSerializer. В производном сериализаторе вы можете указать необходимые атрибуты. Везде, где пользователь UserSerializer должен быть изменен для использования CustomerSerializer.

class CustomerSerializer < UserSerializer 
    attributes :name , :email 
end 

Прокомментируйте, что работает!