2013-12-09 2 views
3

현재 Ruby Hash: can't convert String into Integer 오류가 발생합니다. 코드가 edit_id 행에서 실패합니다.Ruby Hash : String을 Integer TypeError로 변환 할 수 없습니다.

나는 이미 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 

답변

7

JSON.parse(request.body.read) 당신에게 해시의 배열을 제공합니다. 그래서 수정은 edit_id = data[0]["downloadID"]입니다. puts data 대신 p data을 쓰면 data이 해시 배열임을 알 수 있습니다.

+0

당신은 최고입니다. –