2016-11-14 10 views
0

내 웹 페이지에 Bing 검색 결과를 사용하고 싶습니다.루비 온 레일에 루프가있는 키와 값을 빈 해시로 푸시하는 방법

new_bing_results = bing_results[0][:Web] 


result = { } 


result[:title] = new_bing_results[0][:Title] 
result[:description] = new_bing_results[0][:Description] 
result[:url] = new_bing_results[0][:Url] 
result[:display_url] = new_bing_results[0][:DisplayUrl] 

result[:title1] = new_bing_results [1][:Title] 
result[:description1] = new_bing_results [1][:Description] 
result[:url1] = new_bing_results [1][:Url] 
result[:display_url1] = new_bing_results [1][:DisplayUrl] 

result[:title2] = new_bing_results [2][:Title] 
result[:description2] = new_bing_results [2][:Description] 
result[:url2] = new_bing_results [2][:Url] 
result[:display_url2] = new_bing_results [2][:DisplayUrl] 

.... 내가 동일한 코드를 반복 할 필요없이 같은 일 50 회를하고있다 루프를 만들 수있는 방법

  result 

: 자신의 JSON 데이터를 사용하기 위해 나는이 문제의 해결책을 제시 하였다.

나는이 시도하지만 오류를 얻을 :

new_bing_results = bing_results[0][:Web] 
$i = 0 
$num = 50 
result2 = {} 

while $i < $num do 
    result[:title$i] = new_bing_results[$i][:Title] 

......

end 

result 

문제는 내가 내 $ 내가 번호를 추가하기위한 해결책을 찾을 수 없다는 것입니다을 주요 결과 [: 제목] 값 new_bing_results에서와 같이 [$ i]를 [제목 :]

답변

0

이 트릭을 할해야

result = {} 
50.times do |i| 
    result["title#{i}".to_sym] = new_bing_results[i][:Title] 
    result["description#{i}".to_sym] = new_bing_results[i][:Description] 
    result["url#{i}".to_sym] = new_bing_results[i][:Url] 
    result["display_url#{i}".to_sym] = new_bing_results[i][:DisplayUrl] 
end 

50.times0에서 49까지 실행되며 반복을 피하기 위해 보간을 사용할 수 있습니다.

+0

빠르고 정답은 대단히 감사합니다. 그 트릭을했습니다 :) – Jutta

+0

당신은 당신을 위해 일한 대답을 받아 들일 수 있고 당신이 적절하다고 생각하는 답변을 upvote –

0

.to_sym 방법을 사용할 수 있습니다. 예 :

+0

고맙습니다, 그 해결책은 :) – Jutta

0

문자열 보간을 사용한 다음 to_sym 메서드를 사용할 수 있습니다.

result = {} 
50.times do |n| 
    result["title#{n}".to)sym] = new_bing_results[n][:Title] 
end