首页 > 解决方案 > 在 Rails 中使用区分大小写的键发送请求数据

问题描述

作为表单的一部分,我正在向 Rails 后端发送一个 put 请求中的 JSON 对象。请求数据如下所示:

{"choiceNames": {
  "Key Name A": true,
  "Key Name B": true
}}

该示例是人为设计的,但关键是键名区分大小写。在 Rails 控制器中,当使用 来查看数据时params,所有的键都被小写了。

{"choiceNames" => {
  "key name a" => true,
  "key name b" => true
}}

如何防止 Rails 进行这种向下转换?

标签: ruby-on-railsruby-on-rails-4

解决方案


你必须阅读,6.2.2.1。URI 的 RFC:Case Normalization声明,

当 URI 使用通用语法的组件时,组件语法等价规则始终适用;即,方案和主机不区分大小写,因此应标准化为小写。

在控制器中获取大写形式。


推荐阅读