0

この宝石を使用して、アプリから YouTube に動画をアップロードしています。

https://github.com/kylejginavan/youtube_it

これはトークンを使用した私のリクエストです:

{:url=>"http://uploads.gdata.youtube.com/action/FormDataUpload/AIwbFATUMuFsv2GfJp4jkDXk3mkLNF6WklzOSoX05p96enTOMAj6DlnXpe1Rav-ZxZwNRrGC_7-8kStHFA2nisMb09CjdJgNBA?nexturl=http://localhost:3000/es/cvs/5152d31aa61654e56b000001/save_video?cv_id=5152d31aa61654e56b000001", :token=>"AIwbFAQv5ZE9-TBWTNNJi4Ng6_tvoLaxW0JVDCU7TE0rxiT_2CUFw-eZR5kuZr_0tkWBTtpWVu4I-OcfMsfnusqHYQNwq1EsVaCuGDnbqV07OwngagOQYXfzgnxwNzDJ5H1ESkRWKjtOVGGP1-ETDhDdB45-ZyYxlVQVKbitcrONJz1NKI4adqhVrPhmTJaKyjysb5mtWlNYoA1DGesmEwg6UG4y9Nwg1ekVYpi_fB8lvFE5CkchG1AhDkei6yq0wQSyxJVBbF3mhgFuh8ZSRvCuxRvKH7tTmx0ew3P9dmv61S5MQHs5_cwY-pGq4rce4xjVKBB68j5GoT6RaJxKbhLXrV6_pQwUACG40tTWxWhVHLZDneAlzDwnveFBJRE41xCI0G_sbkIJ5703Y1dLorXAGcjNxMFe3-MJ-zbPXWpyZeK7TD2s0lnbc6cdOPje8DGFAFmc6P_7TD6RzTepoBkOOhAokGKpAYkfxacBD77aaExHCzFHde-9jFNZQ2QelPL2YXwyMA8lcX81c3zItut1NKp1soXxuGDNkBPOpu2OzYuGTSBS9PPyvFfqUMHg5X2KDADn2uYNU25nDMIKJlG4VeCfntEbr1J0m1HpcFR3_8LK9hlehuHjqmY_7e8lIbSRJHmEEhw2bQG1aIh7gClZDVVfeJnA52r8Sb_7O4yWtkbii6

ビデオをアップロードすると、ログに次のパラメーターが表示されます。

{"cv_id"=>"5152d31aa61654e56b000001", "status"=>"200", "id"=>"5152d31aa61654e56b000001", "action"=>"save_video", "controller"=>"cvs", "locale"=>"es"}

cv_ididの両方が同じ id です。これは正しくありません。

ただし、URL でYouTube ビデオ IDを確認できます。これは URL です。

http://localhost:3000/es/cvs/5152d31aa61654e56b000001/save_video?cv_id=5152d31aa61654e56b000001&status=200&id=GJUIN83LrdQ

正しい YouTube 動画 ID はGJUIN83LrdQ です

これらは、このリソースを使用した私のルートです:

Myapp::Application.routes.draw do
  #
  #
  resources :cvs do
   member do
    get :upload, :save_video
   end
  end
  #
  #
end

強力なパラメーターの宝石を使用していますが、これが問題かどうかはわかりません。

この問題を解決するにはどうすればよいですか?

ありがとうございました!

4

1 に答える 1

0

ルートと期待するデータが一致していません。ルートは、クエリ文字列のパラメーター:idよりも優先されるパスのパラメーターを指定します。idパスの id とクエリ文字列の cv_id は同じ (5152d31aa61654e56b000001) であるため、両方のパラメーター キーにこの値が表示されます。

オプションに応じて、指定したクエリ文字列から id を省略nexturlし、パス パラメータに配置することを検討して:idください。

http://localhost:3000/es/cvs/GJUIN83LrdQ/save_video?cv_id=5152d31aa61654e56b000001

または、ルートの名前を変更して を指定し、クエリ文字列から:cv_id省略します。cv_id

# route:
(/:locale)/cvs/:cv_id/save_video(.:format) cvs#save_video

http://localhost:3000/es/cvs/5152d31aa61654e56b000001/save_video?id=GJUIN83LrdQ
于 2013-03-27T23:01:22.947 に答える