2010-05-18 2 views
0

두 개의 데이터 배열이 양식에서 전송됩니다. 하나는 transloaded이고 다른 하나는 모델의 실제 양식입니다. [: video_encoded] [: url]을 가져 와서 [: video] [: flash_url]에 저장해야합니다.합치는 합격 된 매개 변수

[: transload] [: results] [...]에 액세스하려고하면 전달 된 인수이거나 transloaded입니다. : video_encode] 나는 아무 것도 얻지 못한다. :results != "results" 또는 다른 말로하면 : 당신의 해시 유형 String의 키가 있지만 유형 Symbol로 액세스하는 다음

print params[:transload] 
    { 
    "assembly_id":"d59b4293b3d79d2ccd1948c02421c6a6", 
    "status":"success", 
    "uploads":{ 
     "video":{ 
      "name":"bbc_one.mp4", 
      "mime":"video/mp4", 
      "ext":"mp4", 
      "size":601104, 
      "meta":{ 
       "width":720, 
       "height":404, 
       "video_fps":25, 
       "video_bitrate":null, 
       "video_format":"avc1", 
       "video_codec":"ffh264", 
       "audio_bitrate":"128k", 
       "audio_codec":"faad", 
       "duration":3.07, 
       "device_vendor":null, 
       "device_name":null, 
       "device_software":null, 
       "latitude":null, 
       "longitude":null 
      }, 
      "url":"http://tmp.transloadit.com/" 
     } 
    }, 
    "results":{ 
     "video_encode":{ 
      "name":"bbc_one.flv", 
      "mime":"video/x-flv", 
      "steps":["encode","export"], 
      "ext":"flv", 
      "size":388317, 
      "meta":{ 
       "width":480, 
       "height":320, 
       "video_fps":25, 
       "video_bitrate":"512k", 
       "video_format":"FLV1", 
       "video_codec":"ffflv", 
       "audio_bitrate":"64k", 
       "audio_codec":"mp3", 
       "duration":3.11, 
       "device_vendor":null, 
       "device_name":null, 
       "device_software":null, 
       "latitude":null, 
       "longitude":null 
      }, 
      "url":"http://s3.transloadit.com/b7deac9c96af6c745e914e25d0350baa/7a/2b09e822265ac2328789b40dcc02ae/bbc_one.flv" 
     }, 
     "video_encode_iphone":{ 
      "name":"bbc_one.qt", 
      "mime":"video/quicktime", 
      "steps":["encode_iphone","export"], 
      "ext":"qt", 
      "size":218236, 
      "meta":{ 
       "width":480, 
       "height":320, 
       "video_fps":25, 
       "video_bitrate":null, 
       "video_format":"avc1", 
       "video_codec":"ffh264", 
       "audio_bitrate":"128k", 
       "audio_codec":"faad", 
       "duration":3.04, 
       "device_vendor":null, 
       "device_name":null, 
       "device_software":null, 
       "latitude":null, 
       "longitude":null 
      }, 
      "url":"http://s3.transloadit.com/31/58bcc80d5345e52a42c9773125e8f0/bbc_one.qt" 
     } 
    } 
} 

내가

video_links = { 
    :flash_url => params[:transload][:results][:video_encode][:url], 
    :mp4_url => params[:transload][:results][:video_encode_iphone][:url] 
} 
params[:video].merge(video_links) 

답변

1

문제는 간단를 사용하려고 것입니다.

+0

나는 그 결과가 json이라고 생각하기 때문에, 나는 몰랐다. params [: transload] = ActiveSupport :: JSON.decode (params [: transload]) 해결 된 내용 –

+0

도움이되었던 답변을 수락해야합니다. – nathanvda

+0

고맙습니다. nathanvda, 전 im : stackoverflow에 새로운 :) –