2016-06-07 2 views
0

Когда я сериализую модельный объект в JSON, я хочу преобразовать все идентификаторы в строки, потому что они должны быть значениями «обратного окна» в JavaScript, а не с номерами с плавающей запятой двойной точности. Есть ли способ сообщить ActiveModel::Serializer для запуска всех идентификаторов через .to_s (если не нуль)?ActiveModel :: Serializer: конвертировать идентификаторы в строки

Я уже пытался сделать класс BaseSerializer, который определяет настраиваемый метод id, из которого наследуются все другие сериализаторы. Этот метод делает соответствующее преобразование в строку, но он не вызывается, например. belongs_to, где отображаются только идентификаторы (из-за отсечки глубины гнездования JSON).

ответ

0

Пожалуйста, попробуйте это ....

У меня есть сериализатору как то

class ResumesSerializer < ActiveModel::Serializer 
    attributes :first_name, :last_name, :age 

    def age 
    object.talent.age.to_s if object.talent.age.present? 
    end 
end 
+0

Так что я должен сделать это для каждого отношения я имею в нашем приложении везде? Также это всегда будет испускать возраст, даже если глубины гнездования обычно приводят к его пропуску. – panzi

+0

Да, вам нужно сделать это только для настройки атрибута. –

Смежные вопросы