gpt4 book ai didi

JavaScript 数组变成 Ruby 哈希

转载 作者:行者123 更新时间:2023-11-28 01:57:22 25 4
gpt4 key购买 nike

为什么 JavaScript 中的数组索引会作为字符串发送到 Ruby?我没有使用分数[0],而是将第一个元素作为分数[“0”] 进行访问。我也不是以 Score.candidate_id 的形式访问我的实例变量,而是以 Score["candidate_id"] 的形式访问我的实例变量。我怎样才能做到这一点?

代码:我的JQuery通过这个函数通过AJAX发送分数:

$.post("submit.com", {scores: results}, function(data) {console.log(data)}, "json")

其中 results 是一个由

组成的数组
{judge_id: x, category_id: y, candidate_id: z, score: s}

Ruby 后端(Sinatra 并且不工作)

post '/submit' do

woot = JSON.parse(params[:scores])

woot.each do |new_score|
Score.new({
score: new_score["score"],
pageant_id: Pageant.active.id,
candidate_id: new_score["candidate_id"],
judge_id: new_score["judge_id"],
category_id: new_score["category_id"]
}).save
end

params[:scores]["1"].inspect.to_json
end

最佳答案

在发送参数之前尝试将其字符串化。尝试使用 firebug 并查看如何使用当前代码发送请求。这基本上是因为 jQuery 将 JSON 中的这些键作为表单元素的名称,并且它会认为您的表单中有一个元素。

尝试像这样发送:

$.ajax({
type : "POST",
url : 'submit.com',
dataType: 'json',
contentType: 'application/json',
data : JSON.stringify(results)
});

在我的应用程序中,我不使用 stringify,但曾经遇到过这个问题,并使用 stringify 正确传递数据。

关于JavaScript 数组变成 Ruby 哈希,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18921402/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com