0

Railsでopen-urigemのopenメソッドを使おうとしています。

スタンドアロンのRubyアプリケーションで試してみると、ファイルの上にそれが必要なだけで、すべて問題ありません。しかし今、私はそれをRailsアプリのコントローラーとして使用したいと思っています。コントローラの上にrequireを置くことをお勧めしますか?

コントローラーコード:

def search
  if params.has_key? :q
    params[:q] =~ /\?v=(.*?)&/
    xmlfeed = Nokogiri::XML(open("http://gdata.youtube.com/feeds/api/videos?q=#{$1}"))
    if xmlfeed.at_xpath("//openSearch:totalResults").content.to_i == 1
      flash[:notification] = "Video #{xmlfeed} found"
      #save video id to database
      redirect_to root_url
    else
      flash[:error] = "Video #{xmlfeed} not found"
      redirect_to root_url
    end
  else
    flash[:error] = "You didn't insert video URL."
    redirect_to root_url
  end
end

エラー:

そのようなファイルやディレクトリはありません-http://gdata.youtube.com/feeds/api/videos?q= cSnkWzZ7ZAA

4

2 に答える 2

1

この種のもののモデルを作成する必要があります。

しかし、あなたの質問に直接答えます。コントローラーの上部に置いても、必要なアクションに置いても、ほとんど違いを感じません。

集中力の高いアプリはベンチマーク時に気付くかもしれませんが、私はまだ見ていません。

于 2012-09-26T15:14:47.863 に答える
1

YouTube フィードをフェッチするためのモデルを作成し、そこにビデオをフェッチして結果を解析するすべてのコードを配置することをお勧めします。コントローラーはできるだけ薄くする必要があります。

于 2012-09-13T08:34:21.743 に答える