В Rails 3 мое приложение сериализовало объекты ActiveModel с именем модели в качестве корня, например:
{
"car": {
"id":29,
"make":"Kia",
"model":"Optima" }
}
Который был настроен в:
#config/initializers/wrap_parameters.rb
ActiveSupport.on_load(:active_record) do
self.include_root_in_json = true
end
Я сохранилпараметр инициализатора include_root_in_json имеет значение true, но он больше не будет сериализован с моделью в качестве корня JSON, когда у меня есть собственный класс сериализатора:
#app/serializers/car_serializer.rb
class CarSerializer < ActiveModel::Serializer
attributes :id, :make, :model
end
Он сериализуется следующим образом:
{
"id":29,
"make":"Kia",
"model":"Optima"
}
Я бы хотел, чтобы он сериализовался с именованным корнем, но мне нужен собственный сериализатор, чтобы удалить некоторые конфиденциальные поля из сериализации.
Как мне добиться того, что было в Rails 3 по умолчанию в Rails 4, так что яможно сохранить обратную совместимость API?