3

Я пытаюсь вернуть ответ API как lowerCamelCase, но он не работает, мне нужно сделать это для всех моих контроллеров/полей, поэтому мне нужно решение для всего проекта.Ответ API Ruby как нижний регистр верблюда

Я пробовал много вещей, в том числе это (http://brentvatne.ca/automatic-casing-activemodel-serializer/), который говорит мне, чтобы настроить ActiveModel к lower_camel следующим

ActiveModel::Serializer.config.key_format = :lower_camel 

Но это не работает, он возвращается следующий JSON

{ 
    "users": [{ 
     "id": "56b110089c28691b84a3bd73", 
     "first_name": "Lucas" 
    }] 
} 

Мне нужно преобразовать first_name в firstName.

Версия:

rails -v 
Rails 4.2.5 

ruby -v 
ruby 2.2.3p173 (2015-08-18 revision 51636) [i386-mingw32] 

И драгоценных камни

active_model_serializers (0.10.0.rc4) 
rails-api (0.4.0) 

Моего уголек App признает JSON, но я не хочу использовать змей тематический переменные на JS

+0

Вы уверены, что это правильный JSON? У этого есть открытая квадратная скобка, но нет закрытой квадратной скобки. –

+0

Было бы лучше разместить активный тег сериализатора модели на ваш вопрос, так как этот вопрос специфичен для этого драгоценного камня. Кроме того, убедитесь, что вы перезапустили сервер рельсов ... неловко признаться, но я допустил эту ошибку раньше. – Harfangk

+0

@Harfangk Я пробовал это много раз, он фактически ударил точку останова на этой линии, но не работает. – Saliba

ответ

1

Проблема была в версии Active Serializer модели (0.10.0rc2).

На последней стабильной версии (0.9) был найден issue, который был объединен, чтобы исправить camelCase, но этот же PR отсутствует в версиях 0.10 RC.

Так после того, как я понизил камень он работал :)

1

Выберите проект key_format в случае, если он где-то переопределен.

Пожалуйста, попробуйте в консоли, попробуйте установить key_format явно, чтобы убедиться, что это возможно (экс MySerializer.new(object, key_format: :lower_camel).as_json)

Если это не поможет, вы можете поместить здесь пример кода, как вы используете сериализаторы.

+0

Это не работает в 0.10.0r4. В приведенном выше коде возвращается ошибка с отсутствием шаблона. –

4

Boom! Я нашел это! Я должен был вырыть через репо AMS (и в конце концов наткнулся на полезный ридй), но здесь для V0.10:

ActiveModelSerializers.config.key_transform = :camel_lower 

Положите в инициализаторе.

Есть и другие варианты: :dash, :camel, :underscore и :unaltered и nil

https://github.com/rails-api/active_model_serializers/blob/a032201a91cbca407211bca0392ba881eef1f7ba/docs/general/configuration_options.md

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