目前收到Ruby Hash: can't convert String into Integer
错误。代码在edit_id行上失败。
我已尝试过许多不同的解决方案,这些解决方案来自SE上已发布的类似问题,但不幸的是,这些问题都没有发挥作用。
哈希:
{"downloadID"=>115, "PageID"=>nil, "title"=>"hi", "dlLink"=>"http://www.a.com", "imgSrc"=>"http://www.a.com", "caption"=>"aaaa", "dlLive"=>nil, "createdAt"=>nil, "user_id"=>7}
代码:
#edit download
put '/view1/downloadedit' do
data = JSON.parse(request.body.read)
puts data
edit_id = data["downloadID"]
puts edit_id
@download = Download.get(:download_id => edit_id)
puts data
if @download.update(data)
status 201
puts 'edit saved okay'
else
status 201
puts 'edit failed to SAVE'
end
end
答案 0 :(得分:7)
JSON.parse(request.body.read)
为您提供一个哈希数组。所以修复是edit_id = data[0]["downloadID"]
。写p data
而不是puts data
,您会看到data
是一个哈希数组。