如何使用youtube-g红宝石宝石?

时间:2010-10-07 05:00:48

标签: ruby-on-rails ruby api youtube

对rails很新,并尝试让youtube-g工作......我很难将用户搜索从form_tag传递给控制器​​......例如:

  1. 用户登陆页面,输入 - 老虎视频 - 在text_field_tag
  2. 控制器拍摄 - 老虎视频 - 并搜索
  3. 用户登陆显示结果的另一页...

  4. 用户登陆页面,输入查询

  5. index.html.erb

    <%= form_tag(youtube_path) do %> 
        <%= label_tag(:q, "Search for:") %> 
        <%= text_field_tag(:wth) %> 
        <%= submit_tag("Search") %>
        <% end %>
    

    -

    1. controller接受查询和搜索
    2. youtubecontroller.rb

      class YoutubeController < ApplicationController
      def search
        require 'youtube_g'
        client = YouTubeG::Client.new
      client.videos_by(:query => params[:wth])
      end
      end
      

      -

      我的路线档案:

      ActionController::Routing::Routes.draw do |map|
      map.search “search”, :controller => “youtube”
      

      我还没到第3步......

      我想要的是一个只有文本框和提交按钮的页面,当用户输入文本并提交时,它们会被带到一个新的页面,呈现10个youtube结果。任何帮助非常感谢!!!

      http://youtube-g.rubyforge.org/

1 个答案:

答案 0 :(得分:0)

search.html.erb

 <%= form_tag(:action => "search") do %> 
      <%= label_tag(:q, "Search for:") %> 
      <%= text_field_tag(:wth) %> 
      <%= submit_tag("Search") %>  
 <% end %>

YoutubeController

require 'youtube_g'
class YoutubeController < ApplicationController
  def index         
  end

  def search  
    if request.post?
     client = YouTubeG::Client.new
     @youtube = client.videos_by(:query => params[:wth],:per_page => 10)         
     render :action => :index
    end 
  end
end

index.html.erb

<% @youtube.videos.each do |video| %>
   <%= video.title %>
<% end %>

的routes.rb

 map.resources :youtube, :collection => { :search => :get }