2012-09-13 85 views
0

我想在Rails中使用open-uri gem的open方法。沒有這樣的文件或目錄:open-uri in rails controller

當我在獨立的Ruby應用程序中嘗試它時,我只需要它在文件頂部並且一切正常。 但現在我想要它在Rails應用程序中使用它的控制器。將需求放在控制器上是可取的嗎?

控制器代碼:

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 

錯誤:

No such file or directory - http://gdata.youtube.com/feeds/api/videos?q=cSnkWzZ7ZAA

回答

1

我認爲,更好的做法是創建一個用於獲取YouTube的飼料的模型,並將該獲取的視頻和解析結果的所有代碼在那裏 - 控制器應儘可能薄。

1

你應該爲這個東西做一個模型。

但直接回答你的問題。把它放在控制器的頂部或你需要它的動作時,你不會感覺到任何不同。

也許高密集的應用程序可能會注意到它時基準,但我還沒有看到它。

相關問題