【问题标题】:Ruby Hash: can't convert String into Integer TypeErrorRuby Hash:无法将 String 转换为 Integer TypeError
【发布时间】:2013-12-27 00:33:11
【问题描述】:

当前收到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

【问题讨论】:

    标签: ruby hash sinatra ruby-datamapper


    【解决方案1】:

    JSON.parse(request.body.read) 给你一个哈希数组。所以修复是edit_id = data[0]["downloadID"]。写p data而不是puts data,你会看到data是一个哈希数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多