我想要将一个数据以JSON格式POST给控制器。
在JavaScript中,数据是一个数组,例如a = [1,2]。
然后我发送POST请求,比如说:
$.post('user/data', {'data' : a})
在用户控制器中,我从params获取数据。
然而,当我检索params[:data]时,得到了一个哈希表:
{"0"=>1, "1"=>2}
我需要手动将哈希转换为数组。
有没有一种方法可以将确切的数组传递给控制器?
我想要将一个数据以JSON格式POST给控制器。
在JavaScript中,数据是一个数组,例如a = [1,2]。
然后我发送POST请求,比如说:
$.post('user/data', {'data' : a})
在用户控制器中,我从params获取数据。
然而,当我检索params[:data]时,得到了一个哈希表:
{"0"=>1, "1"=>2}
我需要手动将哈希转换为数组。
有没有一种方法可以将确切的数组传递给控制器?
$.ajax(
{
type: "POST",
url: url,
data: JSON.stringify(data),
dataType: "json",
contentType: 'application/json'
}
);
$.ajax(
{
type: "POST",
url: 'user/data',
data: JSON.stringify({'data' : a}),
dataType: "json",
contentType: 'application/json'
}
);
你需要将JSON转换为字符串,但是这个方法可以实现:
/path/to/url?data[]=1&data[]=2&data[]=3
在控制器中,可以这样做:
params[:data].each_with_index do |data, index|
do_something_with_data
end
a.map(&:id)
会怎样? - Sergey Kishenin