代码之家  ›  专栏  ›  技术社区  ›  hyperrjas

对象id和youtube视频id与youtube_it gem相同

  •  0
  • hyperrjas  · 技术社区  · 13 年前

    我正在使用这个宝石将视频从我的应用程序上传到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_id公司 和 身份证件 是相同的id,这是不正确的。

    然而,在url中,我可以看到 youtube视频id ,这是网址:

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

    正确的youtube视频id为 GJUIN83第三版

    以下是我使用此资源的路线:

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

    我正在使用强参数gem,我不知道这是否是问题所在。

    我该如何解决这个问题?

    非常感谢。

    1 回复  |  直到 13 年前
        1
  •  0
  •   rossta    13 年前

    您的路线与您期望看到的数据不匹配。您的路线指定了 :id 路径中的param,它将优先于 id 查询字符串中的param。由于路径中的id和查询字符串中的cv_id相同(5152d31aa61654e56b0000001),因此您可以看到这两个param键的值。

    根据您的选项,考虑从您提供的查询字符串中省略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
    
    推荐文章