Rails使用camelCase渲染json对象

时间:2014-05-21 21:38:10

标签: ruby-on-rails ruby json api

我在一个简单的Rails API中有以下控制器代码:

class Api::V1::AccountsController < ApplicationController
  def index
    render json: Account.all
  end

  def show
    begin
      render json: Account.includes(:cash_flows).find(params[:id]), include: :cash_flows
    rescue ActiveRecord::RecordNotFound => e
      head :not_found
    end
  end
end

问题在于,生成的json格式为:

{
  id:2,
  name: 'Simple account',
  cash_flows: [
    {
      id: 1,
      amount: 34.3,
      description: 'simple description'
    },
    {
      id: 2,
      amount: 1.12,
      description: 'other description'
    }
  ]
}

我需要我生成的json是camelCase ('cashFlows'而不是'cash_flows')

提前致谢!!!

1 个答案:

答案 0 :(得分:11)

按照@TomHert的建议,我使用了JBuilder和可用的配置:

  

可以使用key_format!自动格式化键,这可以用于将标准ruby_format中的键名转换为camelCase:

json.key_format! camelize: :lower
json.first_name 'David'

# => { "firstName": "David" }
  

您可以使用类方法key_format(例如,在您的environment.rb中)全局设置它:

Jbuilder.key_format camelize: :lower

感谢!!!