Rails ActiveModelSerialzer 包含 transform_key

Rails ActiveModelSerialzer include with transform_key

我有 ZoneSerializer

class Api::V1::ZoneSerializer < ActiveModel::Serializer
  attributes :id, :name, :address, :description, :groupname, :key, :speed_limit

  has_many :radius_user_groups
end

然后我设置了transform_key

ActiveModel::Serializer.config.key_transform = :camel_lower

当我从服务器收到响应时,我得到 radiusUserGroups,这没问题。但是前端也发送 radiusUserGroups 用于包含,但后端似乎没有自动转换功能。我应该手动执行此操作吗?

添加到您的应用程序控制器 此方法将所有参数转换为snake_case :

before_action :deep_snake_case_params!

  def deep_snake_case_params!(val = params)
    case val
    when Array
      val.map {|v| deep_snake_case_params! v }
    when Hash
      val.keys.each do |k, v = val[k]|
        val.delete k
        val[k.underscore] = deep_snake_case_params!(v)
      end
      val
    else
      val
    end
  end