2012-09-13 1 views
0

J'essaie d'utiliser la méthode ouverte de gem ouvert-uri dans Rails. Quand je l'essaie dans une application Ruby autonome, je l'ai juste besoin sur le dessus du fichier et tout est ok. Mais maintenant je veux qu'il utilise le contrôleur dans l'application Rails. Est-il conseillé de mettre sur le contrôleur?Pas un tel fichier ou répertoire: open-uri dans le contrôleur de rails

Code Controller:

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 

Erreur:

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

Répondre

1

Je pense qu'une meilleure pratique consiste à créer un modèle pour aller chercher youtube nourrit et mettre tout le code qui va chercher les vidéos et parse le résultat là - le contrôleur devrait être aussi mince que possible.

1

Vous devriez faire un modèle pour ce genre de choses.

Mais répondant directement à votre question. Vous ne ressentirez aucune différence en le plaçant en haut du contrôleur ou dans l'action dont vous avez besoin.

Peut-être des applications très intensives pourraient le remarquer lors de l'analyse comparative, mais je ne l'ai pas encore vu.

Questions connexes