我正在尝试将一个对象数组从js传递给rails
data.test = [{test: 'asdas'}]
$.ajax({
url: 'evaluate.json',
data: data,
success: function(data){
},
dataType : "json"
});
滑轨
def evaluate
logger.info("#{params.test}")
end
这里记录器语句总是让我输出为
{"0"=>{"test"=>"asdas"}}
我期待以下登录栏。
[{:test=>"asdas"}]
答案 0 :(得分:5)
你应该在Javascript中使用JSON.stringify
,它以数组或散列作为参数(因为这些是唯一有效的JSON结构)。它返回一个表单,该表单是序列化为JSON的Javascript对象。
在Ruby方面,您将收到一个JSON编码的字符串,因此您需要require 'json'
(这在Rails中自动完成)并使用JSON.parse(string)
。这将为您提供一个Ruby对象。
答案 1 :(得分:3)
试试这个:
data.test = [{test: 'asdas'}]
$.ajax({
url: 'evaluate.json',
data: JSON.stringify(data), // Explicit JSON serialization
contentType: 'application/json', // Overwrite the default content type: application/x-www-form-urlencoded
success: function(data){
},
dataType : "json"
});