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
是“
,不是反冲