Ruby API 小驼峰式响应

Ruby API response as lower camel case

我正在尝试 return API 响应作为 lowerCamelCase 但是它不起作用,我需要为我的所有 Controllers/fields 做这个所以我需要一个解决方案项目。

我尝试了很多东西,包括这个 (http://brentvatne.ca/automatic-casing-activemodel-serializer/),他告诉我将 Activemodel 配置为 lower_camel,如下所示

ActiveModel::Serializer.config.key_format = :lower_camel

但这不起作用,它正在 returning 以下 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)

我的 ember 应用程序识别 JSON 但我不想在 JS 上使用蛇形变量

在项目中搜索 key_format 以防它在某处被覆盖。

请在控制台中尝试,尝试明确设置 key_format 以确保它可行(例如 MySerializer.new(object, key_format: :lower_camel).as_json

如果它没有帮助,您可以在此处提供您如何使用序列化程序的代码示例。

问题出在 Active Model Serializer (0.10.0rc2) 的版本上。

在最后一个稳定版本中(0.9) there was an issue 已合并以修复驼峰式大小写,但同样的 PR 不存在于 0.10 RC 版本中。

所以在我将 gem 降级后它起作用了:)

轰!我找到了!我不得不深入研究 AMS 存储库(并最终偶然发现了一个有用的自述文件),但这里是针对 v0.10 的:

ActiveModelSerializers.config.key_transform = :camel_lower

将其放入初始化程序中。

还有其他选项::dash:camel:underscore:unalterednil

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