Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/65.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails Angular(或AngularRails资源)奇怪地序列化嵌套数据_Ruby On Rails_Angularjs_Serialization - Fatal编程技术网

Ruby on rails Angular(或AngularRails资源)奇怪地序列化嵌套数据

Ruby on rails Angular(或AngularRails资源)奇怪地序列化嵌套数据,ruby-on-rails,angularjs,serialization,Ruby On Rails,Angularjs,Serialization,我有一个如下的查询: Payment.query({ between: { startDate: moment($scope.startDate).format("YYYY-MM-DD"), endDate: moment($scope.endDate).format("YYYY-MM-DD") } }) // irrelevant code omitted /payments?between=%7B%22startDat

我有一个如下的查询:

    Payment.query({
      between: {
        startDate: moment($scope.startDate).format("YYYY-MM-DD"),
        endDate: moment($scope.endDate).format("YYYY-MM-DD")
      }
    }) // irrelevant code omitted
/payments?between=%7B%22startDate%22:%222015-02-18%22,%22endDate%22:%222015-03-04%22%7D
{"between"=>"{\"startDate\":\"2015-02-18\",\"endDate\":\"2015-03-04\"}"}
不幸的是,我的查询字符串的格式如下:

    Payment.query({
      between: {
        startDate: moment($scope.startDate).format("YYYY-MM-DD"),
        endDate: moment($scope.endDate).format("YYYY-MM-DD")
      }
    }) // irrelevant code omitted
/payments?between=%7B%22startDate%22:%222015-02-18%22,%22endDate%22:%222015-03-04%22%7D
{"between"=>"{\"startDate\":\"2015-02-18\",\"endDate\":\"2015-03-04\"}"}
它通过Rails如下所示:

    Payment.query({
      between: {
        startDate: moment($scope.startDate).format("YYYY-MM-DD"),
        endDate: moment($scope.endDate).format("YYYY-MM-DD")
      }
    }) // irrelevant code omitted
/payments?between=%7B%22startDate%22:%222015-02-18%22,%22endDate%22:%222015-03-04%22%7D
{"between"=>"{\"startDate\":\"2015-02-18\",\"endDate\":\"2015-03-04\"}"}
这是对内部属性的双重转义。我当然想要的是:

{"between"=>{"startDate":"2015-02-18","endDate":"2015-03-04"}}

我不知道这是有角度的还是有角度的。有没有关于如何正确序列化数据的建议?

我自己想办法。以下是修复方法:

Payment.query({
  "between[startDate]": moment($scope.startDate).format("YYYY-MM-DD"),
  "between[endDate]": moment($scope.endDate).format("YYYY-MM-DD")
})

对我来说,这并不是一个最好的解决方案,但对我来说似乎并不可怕。

%7B%22startDate%22:%22105-02-18%22,%22endDate%22:%22105-03-04%22%7D
是单转义。我真的觉得
%22
应该在那里,你知道吗?
%22
,不是反冲